IT |
気になる、記になる… |
Microsoft、「Windows」のシステム要件を満たしていないハードウェアであることを示すウォーターマークをテスト中 |
https://taisy0.com/2022/02/22/153599.html
|
microsoft |
2022-02-22 13:22:23 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
PowerBI: Python Visual を使った箱ひげ |
https://qiita.com/baku2san/items/fa480c9abab24a25ecb6
|
PowerBIPythonVisualを使った箱ひげ背景箱ひげが必要になったその選択肢を考えると以下で追加のビジュアルカスタムビジュアル作るPythonRPythonは勉強中でもあったので物は試しとやってみた。 |
2022-02-22 22:18:18 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
RubyでGoogle Calendar APIを使えるようにするための設定 |
https://qiita.com/nakamaksk/items/d1f522ecbb12aa969afc
|
GCPのコンソールを使えるようにするGCP内でプロジェクトを作成GoogleCalendarAPIの有効化OAuth同意画面の設定OAuthクライアントIDの作成Rubyquickstartで動作確認GCPのコンソールを使えるようにする以下画面にアクセスしてトップ画面を開きます。 |
2022-02-22 22:51:47 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
Railsで使用しているDBの情報を取得する |
https://qiita.com/raw8bridge/items/25ad2fe227a511fdcb61
|
Railsで使用しているDBの情報を取得するはじめにrailsconsoleとかで今使っているDBの情報をパパッと表示したいと思って調べたら出てきたのでメモ代わりに書き出します。 |
2022-02-22 22:15:15 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
EC2にS3アドミン権限をアタッチしているのにS3バケットにcurlできない? |
https://qiita.com/theFirstPenguin/items/4de02c96e25b0fad95e3
|
ECにSアドミン権限をアタッチしているのにSバケットにcurlできないはじめに代未経験からwebエンジニア目指して勉強中の者です。 |
2022-02-22 22:06:24 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
EC2インスタンスファミリーの特徴と覚え方 |
https://qiita.com/cloud-solution/items/c8dd9ed491abd3360516
|
AWSBlackBeltOnlineSeminar資料より抜粋インスタンスファミリーのカテゴリと特徴種類特徴ファミリー汎用・バランスの取れた汎用タイプ・比較的安価TMAMacコンピューティング最適化高い計算能力Cメモリ最適化メモリを多く搭載RXz高速コンピューティングハードウェアアクセラレーターを搭載し、グラフィック演算や推論処理などに最適化PDGFVInfストレージ最適化・高いIOパフォーマンス・大容量のインスタンスストレージIDHインスタンスファミリーの覚え方インスタンスファミリーは種類が多く、TやP、Vといった記号では覚えにくいです。 |
2022-02-22 22:06:03 |
GCP |
gcpタグが付けられた新着投稿 - Qiita |
RubyでGoogle Calendar APIを使えるようにするための設定 |
https://qiita.com/nakamaksk/items/d1f522ecbb12aa969afc
|
GCPのコンソールを使えるようにするGCP内でプロジェクトを作成GoogleCalendarAPIの有効化OAuth同意画面の設定OAuthクライアントIDの作成Rubyquickstartで動作確認GCPのコンソールを使えるようにする以下画面にアクセスしてトップ画面を開きます。 |
2022-02-22 22:51:47 |
Ruby |
Railsタグが付けられた新着投稿 - Qiita |
Railsで使用しているDBの情報を取得する |
https://qiita.com/raw8bridge/items/25ad2fe227a511fdcb61
|
Railsで使用しているDBの情報を取得するはじめにrailsconsoleとかで今使っているDBの情報をパパッと表示したいと思って調べたら出てきたのでメモ代わりに書き出します。 |
2022-02-22 22:15:15 |
海外TECH |
Ars Technica |
Relativity Space plans upgrade to Terran 1 rocket soon after its initial launch |
https://arstechnica.com/?p=1835667
|
initial |
2022-02-22 13:29:30 |
海外TECH |
MakeUseOf |
6 SEO Hacks to Optimize Your Resume |
https://www.makeuseof.com/seo-hacks-to-optimize-resume/
|
stand |
2022-02-22 13:45:13 |
海外TECH |
MakeUseOf |
How to Use Your Android Phone as an IP Webcam |
https://www.makeuseof.com/tag/ip-webcam-android-phone-as-a-web-cam/
|
footage |
2022-02-22 13:45:13 |
海外TECH |
MakeUseOf |
How to Add a Printer to a Mac |
https://www.makeuseof.com/tag/set-up-use-printers-mac/
|
macneed |
2022-02-22 13:16:13 |
海外TECH |
MakeUseOf |
How to Recover a Cryptocurrency Wallet Using a Seed Phrase |
https://www.makeuseof.com/how-recover-cryptocurrency-wallet-using-seed-phrase/
|
phrase |
2022-02-22 13:16:13 |
海外TECH |
DEV Community |
JavaScript - toUpperCase and toLowerCase methods |
https://dev.to/thenerdydev/javascript-touppercase-and-tolowercase-methods-1m1i
|
JavaScript toUpperCase and toLowerCase methodsHey guys I am back with a new article In this article let us learn about simple methods that have in JavaScript using which we can convert a given string to its uppercase and its lowercase representation respectively So without a further ado let s get started IntroductionSo we have the JavaScript s toLowerCase method that returns a string without any uppercase letters Similarly we have the toUpperCase method which returns us a string representation of the given string without any lowercase letters So essentially both these methods take a string and convert it into a different representation Now when you are working with a string in JavaScript you may encounter a situation where you feel the need to convert the case of a string For example if you re creating a sign up form that collects the username of a user then you may want the email address to appear in all lowercase That s where these methods toLowerCase and toUpperCase comes in These methods allow us to convert a string to all lowercase and all uppercase respectively In this article we ll explore how to use the toUpperCase and toLowerCase string methods in JavaScript We ll also walk through an example that demonstrates the usage of each of these methods Case Sensitivity in StringsNow strings as we know represents a sequence of characters that joined together Strings can include things like letters symbols numbers and white spaces In JavaScript we can declare strings using three types of quotes Single Quotes Double Quotes Backticks Single and double quotes can be used interchangeably although you should keep your usage of either of these in a consistent manner throughout your program So let us take an example of a string in JavaScript Strings are case sensitive What does this mean This means that when we compare strings or when we search through strings or otherwise manipulate them the case of each individual character will make no impact on how we work with the string So for example if we compare two strings in different cases the strings will not be considered the same by JavaScript toUpperCase methodSo first we have the toUpperCase method that converts a string to uppercase letters toUpperCase does not change the value of a string instead it takes a copy of the string mutate that by converting each character of that copied string into its uppercase form and then eventually return that instead of returning the original string Let us see the syntax for the toUpperCase method So let us convert our username to its uppercase representation The toUpperCase method as you can see from the above example does not take any argument It is just applied as a method on the string that we want to transform so basically using the dot operator This then returns us a copy of the string with all characters in uppercase toLowerCase methodThe toLowerCase method converts a given string into its lowercase representation Like the toUpperCase method it does not alter the original string Instead it simply makes a copy of the original string and mutate that so basically converting each of the given characters of the string into its lowercase representations Let us see the syntax of toLowerCase method in action This toLowerCase method instead turns the string into its lowercase representation ConclusionIn this guide we discussed how we can make use of the toUpperCase and toLowerCase method to convert a string to all uppercase and all lowercase respectively So this is it for this article Thanks for reading If you enjoy my articles consider following me on Twitter for more interesting stuff Twitter Don t forget to leave a like if you loved the article Also share it with your friends and colleagues PS If you are looking to learn Web Development I have curated a FREE course for you on my YouTube Channel check the below article Web Developer Full Course HTML CSS JavaScript Node js and MongoDB The Nerdy Dev・Apr ・ min read html css node javascript Looking to learn React js with one Full Project check this out Learn React with one BIG Project NOTES included Demo and Video Link The Nerdy Dev・Jun ・ min read daysofcode javascript react webdev |
2022-02-22 13:50:58 |
海外TECH |
DEV Community |
Testing Accessibility with Shadow Roots |
https://dev.to/westbrook/testing-accessibility-with-shadow-roots-55cm
|
Testing Accessibility with Shadow RootsRecently I had the opportunity to discuss the difficulties learnings and victories or developing Spectrum Web Components together with fellow custom element developers from teams at IBM ING SAP and Vaadin If you missed the live stream check out the recording Fellow panelist Ari Gilmore made a great point that there is a lack of reading material for developers like ourselves to draw from when looking to build solid accessibility practices into the web components space With that in mind I thought it would be a good idea to take some of the abstract concepts we discussed in the panel and share some actual examples of working and testable code Hopefully this can better support the next developer s looking to bring a high quality accessible design system to life for their team via web components To support this conversation I ll be bringing to life an input element pattern featuring accessible labeling and help text Taking the suggestion of Thomas Allmer and the team at ING the first example will be a no shadow DOM implementation with associated testing With a shared baseline on how both the HTML and the testing works we ll explore some different examples of delivering the relationship an input element label element and help text element accessibly with custom elements and shadow DOM We ll talk about ways that we can mix and match these approaches and how some of the approaches align with or support various in development and draft specifications for making this process even less work Some particularly prescient subjects that we went over during the panel that I ll dive into in this article leveraging the axe core accessibility testing engineseeing and understanding the accessibility treeusing native keyboard interactions at testing timehow ID references do not pass through a shadow boundaryways to mimic native element referencesI ll also connect some dots between these techniques and the various web component libraries my fellow panelists have brought into the world that leverages them so you can follow up on what is needed to take those patterns into production Some subjects that I won t spend much time on in this article but are of great importance when shipping high quality production ready implementations of these patterns include content stylingform associationstate managementvalidationEach of these and likely other topics omitted without reference would easily fill their own article s and hopefully the support you ll find here in getting a jump on making your shadow DOM based content more accessible will free you up to share your approach to these realities next Table of contentsStarting from HTMLWhat and how to testaxe coreAccessibility treeNative keyboard events at test timeHow should we build it Factoring from raw HTMLWrapperDecoratorEmitterThe Decorator Pattern PlusPanelist projects leveraging this techniqueOutside inID references DO NOT pass through shadow boundariesPanelist projects leveraging this techniqueSnowflakesPretending to be a native elementResponding to the for attributeObserving text contentPanelist projects leveraging this techniqueIn memoriamIn the next life DisclaimerBefore we get started as I mentioned in the panel I wouldn t call myself an accessibility specialist I understand accessibility to be an important part of delivering products to people and strive for the tools I leverage to do so to be more and more accessible over time In the community I work with smart caring people like those that I joined on the panel to find new and better ways to do things At Adobe while developing Spectrum Web Components I work with a dedicated team of accessibility engineers some of whom actually write the specs to which the entire web community develops software Without their patience and support I d definitely not have gotten as far as I have in being able to bring accessible surfaces to the web That certainly doesn t mean I get everything right So while I hope you find this article similarly useful the only way for us all to get a little more accessible is for you to share in the comments in you find something I ve missed or a different way to achieve the same goals or want to know something beyond what I ll be coving We can all make the web a little better place together Starting from HTMLFollowing the lead of the ING team who s solid work has brought up Lion we ll start from the raw HTML pattern that delivers a labelled and described lt input gt element lt div gt lt label for input gt Label lt label gt lt input id input aria describedby description gt lt div id description gt Description lt div gt lt div gt You can view a demo of this code or clone it from GitHub to look more closely into how it works However the crux of the functionality all provided natively by HTML at this point is ID reference Our lt label gt element accepts the for attribute which references an element by ID The element it references in this case our lt input gt elements will be the one that receives the content of the lt label gt as its name in the accessibility tree passed the screen reader Locally it will also pass the click and focus events triggered by clicking the lt label gt onto the referenced element as well This is less important in an lt input type text gt element however types like checkbox or radio will be toggled as appropriate when passing these events which can make both interactive with and styling your form content easier The lt input gt element in question is leveraging the aria describedby attribute which also references an element by ID Here the attribute points to our lt div gt element which holds our description There is no default interactive functionality that this relationship provides but it will supply the text content of the referenced element as the description of the lt input gt element in the accessibility tree What and how to testAll of this is a great start to delivering this pattern accessibly but don t just take my word for it Let s dig into how we can test these things to be true and at the same time set the table for refactoring this pattern to leverage web component APIs like custom elements and shadow DOM axe coreThanks open wc testing The first stop in any accessibility testing or possibly any UI testing should be on tests you can get for free For our use case that can be provided by the axe core accessibility testing engine as packaged into Chai ay Axe and delivered in open wc testing While you may have caught me quoting a woefully small percentage of issues that automated testing like this can catch I am heartened to hear that Deque makers of axe core have recently looked deeper into this situation and believe that of accessibility issues can be discovered via automation so this will be a big first step in affirming the accessibility of the patterns you deliver What s more this big first step is actually a really small step in reality Check out the code below for confirming the accessibility of a DOM fixture with axe core via Chai ay axe Has the side effect of binding Chai Ay aXe to expect import fixture expect from open wc testing it passes the aXe core audit async gt const el await fixture lt HTMLDivElement gt lt div gt lt label for input gt Label lt label gt lt input id input aria describedby description gt lt div id description gt Description lt div gt lt div gt Asynchronously tests the accessibility of the supplied content await expect el to be accessible That s right the guts of the test at await expect el to be accessible and you ll immediately start getting reports of the accessibility achieved by the DOM in your fixture Visit the Rule Descriptions outlining all of the concepts that will be covered simply by adding the one test This one test is so important that many tools get out in front of you to ensure it is included from the start npm init open wc will include this test by default when testing is added by the generator At Spectrum Web Components when generating a new package with our Plop templating we have this test by default as well However you are initializing your projects I highly suggest you work to have this sort of test included by default With that out of the way and as many as of your accessibility issues already caught we can take a look at some more nuanced contexts that can be useful to have covered Accessibility treeThanks web test runner The DOM tree paired with various ID references and aria attributes is used by the browser to construct an accessibility tree that it represented to screen readers to support visitors experiencing and interacting with our content with their assistance Leveraging WAI ARIA Authoring Practices along with the assurances that axe core can set as a foundation we can generally be sure of what the tree a browser might build from our content However it can beneficial to know for sure One path to this is to leverage full accessibility tree view in Chrome DevTools Switch this on and you can manually confirm the tree to which your code is being converted by the browser Many browsers surface the ability to see part of the accessibility tree via their developer tooling which is very useful but you often end up needing to rely on manual testing to confirm that the right content is being delivered to screen readers While manual testing should definitely be a part of your go to production strategy knowing what s actually in that tree not just the relations that get created but the actual content that is bound by those relationships can be an important addition to our automated testing workflows To support this browser runners like Playwright surface APIs by which we can access the accessibility tree as a snapshot thereof directly web test runner give you access to these APIs while unit testing via its commands interface This allows you to snapshot the accessibility tree at any point during an interaction with your code at test time and confirm that nodes and relations that you expect to exist are actually there import aySnapshot findAccessibilityNode from web test runner commands const label Label const description Description it is labelled label and described as description async gt const el await fixture lt HTMLDivElement gt lt div gt lt label for input gt label lt label gt lt input id input aria describedby description gt lt div id description gt description lt div gt lt div gt const snapshot await aySnapshot as unknown as DescribedNode amp children DescribedNode const describedNode findAccessibilityNode snapshot node gt node name label amp amp node description description expect describedNode node not in JSON stringify snapshot null to not be null The above code actually builds our HTML implementation of the labeled and described input appends it to the document and then requests a snapshot of the accessibility tree Then using findAccessibilityNode helper confirms the presence of a node meeting the requirements supplied You ll also note that I leverage the custom error message of the Chai expectation here to allow for seeing the stringified accessibility tree when a test fails As the tree can have many edge cases and unexpected results I ve found this an important part of understanding what I m testing One way that the accessibility tree surprises me in the case of this example is that WebKit does not actively associate the description content with our lt input gt element While manual testing does confirm that the description text is associated appropriately the tree will not return a reality where these two elements are connected With the cross context manual testing to back up this relationship in a WebKit browser I m comfortable with expanding the test in this case to something that takes this deviation into account export const findDescribedNode async name string description string Promise lt void gt gt await nextFrame const isWebKit AppleWebKit test window navigator userAgent amp amp Chrome test window navigator userAgent const snapshot await aySnapshot as unknown as DescribedNode amp children DescribedNode WebKit doesn t currently associate the aria describedby element to the attribute host in the accessibility tree Give it an escape hatch for now const describedNode findAccessibilityNode snapshot node gt node name name amp amp node description description isWebKit expect describedNode node not in JSON stringify snapshot null to not be null if isWebKit Retest WebKit without the escape hatch expecting it to fail This way we get notified when the results are as expected again const iOSNode findAccessibilityNode snapshot node gt node name name amp amp node description description expect iOSNode to be null You ll see that this test uses the user agent to compare for WebKit and then allows for the test to pass when the description isn t related to the lt input gt and the browser is WebKit To support understanding when if this reality were to change in the future the test then runs the expectation in reverse for WebKit so that a failure would be raised in our test and the workaround can be removed In other testing scenarios WebKit will associate description content without issue so pay attention to your results and pair them with manual testing when setting the baselines from which you want to protect against regression I ve also seen these sorts of differences in cross browser understandings of the role of certain patterns so be aware of the tree your content is creating when deciding the appropriate testing pattern to apply Native keyboard events at test timeThanks Playwright Once you are comfortable with the experience you are delivering to screen reader users another user segment to ensure you are accessibly supporting keyboard navigation users Whether to guide the screen reader across your content or in support of other situations it is important to know that your content can be accessed via the keyboard in expected ways This can often prove elusive as testing keyboard events at unit test time is much more complex than it may seem However once you ve established a reliable path to do so the techniques leveraged to test this can be useful in other areas as well for instance in UIs that include things like lt input gt element which would traditionally be interacted with via the keyboard by all users Synthetic keyboard events can provide you with a decent entry into this area const keyboardEvent code string eventDetails eventName keydown KeyboardEvent gt return new KeyboardEvent eventName eventDetails bubbles true composed true cancelable true code key code Especially when the feature at test is also fully synthetic e g something that you ve added to your input element they can take you a long way When you re looking to test more complex keyboard interactions including the various phases on a keypress you might even turn to a testing library or framework to manage the complexities therein with success Once you move beyond testing your code directly and into how your code should work in concert with the browser in which it is delivered synthetic events begin to show their shortcomings This can be seen when attempting to use a synthetic event to alter the value of an lt input gt element To fully mimic these interactions more and more synthetic events need to be stacked on top of imperative commands to the to lt input gt until the whole process becomes quite brittle Go one extra step and make expectations when a Tab key is pressed and the approach falls apart altogether A native keyboard event doesn t just have all phases of a keypress that can be difficult to synthesize reliably the browser itself recognizes the native keyboard interaction and responds with functionality beyond that which is found in your code That means that the event has to originate with the browser itself This is where tools like Playwright can step in and give you support for native keyboard interactions Again web test runner gives you access to these APIs while unit testing via its commands interface Leveraging this allows us to place lt input gt elements before and after the code we have under test and ensure that Tab and Shift Tab interactions behave as expected Code for doing so might look as follows import sendKeys from web test runner commands it is part of the tab order async gt const el await fixture lt HTMLDivElement gt lt div gt lt label for input gt label lt label gt lt input id input aria describedby description gt lt div id description gt description lt div gt lt div gt const input el querySelector input as HTMLInputElement const beforeInput document createElement input const afterInput document createElement input el insertAdjacentElement beforebegin beforeInput el insertAdjacentElement afterend afterInput beforeInput focus expect document activeElement beforeInput activeElement document activeElement to be true await sendKeys press Tab expect document activeElement input activeElement document activeElement to be true await sendKeys press Tab expect document activeElement afterInput activeElement document activeElement to be true await sendKeys press Shift Tab expect document activeElement input activeElement document activeElement to be true await sendKeys press Shift Tab expect document activeElement beforeInput activeElement document activeElement to be true beforeInput remove afterInput remove You ll see here that our test consists of three lt input gt elements and applies focus to the first before using Tab and Shift Tab keyboard events to navigate through them This may feel like testing code that isn t yours and you might be right in this case of all native lt input gt elements in the same DOM tree However when shadow DOM boundaries come into play it becomes more important to confirm how a keyboard user might come into contact with the elements you are building How should we build it There are a multitude of ways that we could structure this input experience with custom elements and shadow DOM On top of each of those options is the ability to mix and match them across various contexts to make them work just right for your library or product From here let s dive into doing just that while looking at some more pure implementations of the Wrapper Decorator Emitter Outside in and Snowflakes techniques as well as how the some of the panelist projects leverage them or combinations thereof Factoring from raw HTMLWe ve already seen the raw HTML that we ll be working from but here it is again as a reminder lt div gt lt label for input gt Label lt label gt lt input id input aria describedby description gt lt div id description gt Description lt div gt lt div gt See the demo of webcomponents dev Clone the code on GitHub Below I ve included five different ways to factor this raw HTML into custom elements but they re just a small selection of the ways that you could do so accessibly For each we ll take a look at the custom elements that need to be created to leverage them how those custom elements alter our usage in HTML and what types of changes or additions might be needed to our test suite to support these decisions I ll also link to examples of all or part of these techniques in work from my fellow panel members in the work on Carbon Web Components Lion SAP and Vaadin or in my own at Spectrum Web Components WrapperSee the demo on webcomponents dev Clone the code on GitHub This techniques is called wrapper because really all that we re doing is wrapping our previously accessibly HTML with a custom element lt testing ay gt lt label for input gt Label lt label gt lt input id input aria describedby description gt lt div id description gt Description lt div gt lt testing ay gt That s it you re done Ship it This lt testing ay gt element relies on the native accessibility of the raw HTML that we started with and then encapsulates the reusable functionality that you d actually want to ship in a custom input element within the parent element wrapper By itself however it places a lot of responsibility on a consuming developer to ensure that each usage fully completes the contract of accessibility promised by the raw HTML from which we started I d guess that this higher level requirement in their consumers lead other members on the panel not to use this technique as well but you can always reach out to them and their teams for more information In the case that you like the flexibility of this pattern but prefer to lighten the burden on your consumers check out our next pattern DecoratorSee the demo on webcomponents dev Clone the code on GitHub lt testing ay gt lt label gt Label lt label gt lt input gt lt div gt Description lt div gt lt testing ay gt The decorator pattern takes the wrapper pattern and like its name would suggest decorates the provided HTML with the required attributes in order to deliver the pattern accessibly When decorating HTML that is slotted into your custom element from the outside it is important to remember that the owner of that code the application or component above may have expectations as to the state of that DOM with which it is best not to interfere In that way our lt testing ay gt element in this case will only apply the IDs needed to complete our accessibility contract when IDs are not already available on the element s in question With the possibility too that any required aria attributes might already have associations applied to them the element conditions those attributes into the ID reference list of those attributes rather than setting them to the decorated IDs only This is a useful pattern in a number of contexts and can be achieved with the following helper methods export function conditionAttributeWithoutId el HTMLElement attribute string ids string void const ariaDescribedby el getAttribute attribute let descriptors ariaDescribedby ariaDescribedby split s descriptors descriptors filter descriptor gt ids find id gt descriptor id if descriptors length el setAttribute attribute descriptors join else el removeAttribute attribute export function conditionAttributeWithId el HTMLElement attribute string id string string gt void const ids Array isArray id id id const ariaDescribedby el getAttribute attribute const descriptors ariaDescribedby ariaDescribedby split s const hadIds ids every currentId gt descriptors indexOf currentId gt if hadIds return function noop descriptors push ids el setAttribute attribute descriptors join return gt conditionAttributeWithoutId el attribute ids An element can conditionAttributeWithId and then cache the returned conditionAttributeWithoutId method to clean up at a later time all without worrying about overwriting or removing values important to the parent context Beyond that this is a rather naive example of decorating DOM in this way and assumes the first lt input gt that is slotted into it is the input should be decorating and the same with the first lt label gt element Any other non lt input gt and non lt label gt element that it is provided is there to describe the input However it does nothing to ensure those are the only lt input gt or lt label gt elements that it receives or that it displays Those elements would deliver content into the accessibility tree that is currently unmanaged and any production ready implementation of this pattern would benefit from additional validation to ensure that didn t happen If this level of flexibility and the validation required to manage it seem uncomfortable take a look a how our next pattern locks down the content our custom element can deliver EmitterSee the demo on webcomponents dev Clone the code on GitHub lt testing ay label Label description Description gt lt testing ay gt Turn the decorator pattern up to and you end up with the emitter pattern As you see in the HTML sample above the consuming developer no longer has to structure any of their own HTML to be slotted into the lt testing ay gt element The emitter pattern relied on attributes to supply the accessible content that it will deliver and then renders the accessible HTML from that data This approach very closely resembles patterns you may have seen in the JSX contexts of other approaches to componentizing UI The main difference is that the accessible HTML will be rendered inside of the lt testing ay gt element as opposed to in the position marked by the call to a lt TestingAy gt function in JSX The Decorator Pattern PlusAt the intersection of the emitter pattern and the decorator pattern is the decorator pattern plus which I have written about before It s crazy to think that it s more than three years old now but it still does a great job of introducing what would otherwise be a sixth pattern to cover for this article Pair the concepts therein with the concepts above both in regards to testing and relating lt input gt elements to label and description content and you might find the accessibility pattern for your next custom input element Panelist projects leveraging this techniqueLionThe Lion library leverages a form of Decorator Pattern Plus in that it can either emit DOM based on the attributes or properties that it is provided or accept content for the various responsibilities slotted into its lt lion input gt element from the outside lt lion input label Label help text Description gt lt lion input gt lt OR gt lt lion input gt lt div slot label gt Label lt div gt lt input slot input gt lt div slot help text gt Description lt div gt lt lion input gt This is powered by their FormControlMixin that makes the decoration or emission of light DOM content nice and uniform across their library Vaadin Web ComponentsHaving mentioned as part of the panel that Lion had a lot of influence on their library I m unsurprised to see the Vaadin team also leveraging a form of Decorator Pattern Plus as well Here too you can create a lt vaadin text field gt from attributes properties or slotted content lt vaadin text field label Label helper text Description gt lt vaadin text field gt lt OR gt lt vaadin text field gt lt div slot label gt Label lt div gt lt input slot input gt lt div slot helper gt Description lt div gt lt vaadin text field gt Here Vaadin leverages the reactive controller pattern popularized by the Lit team to manager various parts of this pattern Label content description content as well as the lt input gt element itself are each managed in a way that is easily sharable across the library In both of these cases you are also given the option to choose what things you want to supply and where while still having them bound to the accessibility tree correctly This can lend a nice level of freedom to developer consuming your custom form elements Outside inSee the demo on webcomponents dev Clone the code on GitHub lt testing ay gt lt div slot label gt Label lt div gt lt div slot description gt Description lt div gt lt testing ay gt In this approach there is content important to the accessibility story of the element on both the outside and the inside of our lt testing ay gt element Inside by default consumers of this element are provided an lt input gt element and from the outside content is addressed to label and description slots for their content to be associated with said lt input gt appropriately Much like we saw with the emitter approach above this allows a consuming developer to focus directly on providing the content they would like to deliver while the lt testing ay gt element manages all of the accessible relations This pattern goes one step further in not altering DOM contexts that it does not own which can ensure eager rendering technologies employed at the parent application or element level will not interfere with the UI our custom element delivers ID references DO NOT pass through shadow boundariesThis is the first technique we ve looked at together where there is content important to delivering the accessibility of the pattern separated by shadow boundaries In association with that you ll notice that we are no longer supplying IDs directly on the element containing the label and description text content This is because the ID reference created by the for attribute on a lt label gt element and the aria describedby attribute on an lt input gt DO NOT pass through shadow boundaries To avoid this reality we ve wrapped the lt slot gt elements onto which we are projecting this content from the light DOM into our shadow DOM in elements that hold these references Content projected into a custom element in this way will be attributed to those wrapping elements when the browser constructs the accessibility tree from this DOM to pass to the screen reader clearly delivering the content of this UI to the users they support Panelist projects leveraging this techniqueCarbon Web ComponentsWe can see a full investment into the outside in pattern in Carbon Web Components lt bx input gt element including some additional slots for content beyond that covered herein lt bx input gt lt div slot label text gt Label lt div gt lt div slot helper text gt Description lt div gt lt bx input gt This allows the lt bx input gt to fully leverage the accessibility relationship created by the outside in pattern for the label text content However when taking a closer look you ll see that the helper text and validity message content is not currently associated with the lt input gt element Spectrum Web ComponentsIn order to attach description content to form elements including the lt sp textfield gt element in the Spectrum Web Components library a help text slot is surfaced lt sp textfield gt lt div slot help text gt Description lt div gt lt sp textfield gt This leverages the pattern outlined above very closely and expands to with a technique called Stacked Slots that allows you to easily manage multiple pieces of description content based on the validity of the lt sp textfield gt element Even after all this time I find that the patterns made available around slotted content and ensuring the accessibility of content leveraging shadow roots has much exploration to be had UI Web ComponentsIn conjunction with a visual design decision that delivers extra content about the lt input gt element in a popover the lt ui input gt element from UI Web Components leverages a valueStateMessage slot similar to this pattern Notice that the value state attribute must be set for content supplied in this manner to be displayed This attribute accepts Error Information and Warning in order to display this content at various visual severity levels lt ui input value state Information gt lt div slot valueStateMessage gt Description lt div gt lt ui input gt However to achieve the delivery of the content via a popover there is some additional machinery that goes into this implementation By default the text content applied to the valueStateMessage text is duplicated into the shadow root of the lt ui input gt element and associated to the lt input gt via a computed aria describedby attribute for screen readers When the lt ui input gt element is focused any content supplied to the valueStateMessage slot will then be copied just in time into a popover for visual delivery SnowflakesSee the demo on webcomponents dev Clone the code on GitHub lt div gt lt testing ay label for input gt Label lt testing ay label gt lt testing ay input id input gt lt testing ay input gt lt testing ay help text for input gt Description lt testing ay help text gt lt div gt Everyone wants to be different everyone wants to be unique and sometimes custom elements feel this same way too To support them in this endeavor here we outline what it might look like to make a fully custom implementation of each of the elements found in the raw HTML lt testing ay label gt replaces the native lt label gt element and take on the responsibility of both the focus forwarding that we confirmed in our test code but also features its own for attribute that must be powered by custom JS lt testing ay input gt replaces the native lt input gt element and adds some simplicity by not requiring the aria describedby attribute any longer lt testing ay help text gt helps clarify the anonymous nature of the lt div gt we had previously leveraged for this content and also features its own for attribute We ll investigate how the lack of an aria description attribute in the platform makes managing this for attribute different than the one on our lt testing ay label gt element below Pretending to be a native elementOne of the key characteristics of the snowflake pattern is that you are making custom elements that mimic the native behavior of existing HTML elements rather than leveraging them directly decorating them or extending not likely ever possibly without polyfilling in Safari then This means you ll need to be conscious of the capabilities you were otherwise getting for free in those native elements One should be apparent by the use of the for attribute in our custom label and help text elements above Both lt testing ay label gt and lt testing ay help text gt will need to duplicate the ID reference established in native lt label gt elements by this attribute In this pattern the for attribute points to an element that could be an actual form field and you ll see code to support that possibility but knowing that our lt testing ay input gt encapsulated its form element within its shadow DOM we ll also need to prepare a path to keep the content relationship between two elements separated by a shadow boundary live Responding to the for attributePart of the power that custom elements surface for developers in the lifecycle methods with which they can hook into browser native changes in our elements Two of these are observedAttributes and attributeChangedCallback which allow us to observe attribute changed With them we can easily react to changes in the for attribute on our custom label and help text elements to ensure that those elements are appropriately associated to the element referenced thereby Take a closer look at how we do that in lt testing ay label gt async resolveForElement House keeping for when the value of for changes from one ID to another if this conditionLabel this conditionLabel if this conditionLabelledby this conditionLabelledby if this for delete this forElement return Resolution of the element referenced by the ID provided as for This resolution happens in the DOM tree in which the lt testing ay label gt element exists so the referenced element will need to exist there as well const parent this getRootNode as HTMLElement const target parent querySelector this for as LitElement amp focusElement HTMLElement if target return if target localName search gt await customElements whenDefined target localName if typeof target updateComplete undefined await target updateComplete Noralization of the referenced element as the referenced host or an element available via the focusElement property on that host for cross shadow boundary referencing this forElement target focusElement target if this forElement const targetParent this forElement getRootNode as HTMLElement if targetParent parent a Application of aria labelledby for elements in the same DOM tree this conditionLabelledby conditionAttributeWithId this forElement aria labelledby this id else b Application of aria label for elements separated by shadow boundaries this forElement setAttribute aria label this labelText this conditionLabel gt this forElement removeAttribute aria label Looking specifically at the numbered comments above For performance reasons this code requires that referenced elements live in the same DOM tree If based on the requirements of your application this might be something you could relax As seen in b there is already support for associating content across shadow boundaries so whether you step up through the various tree to the document or choose to resolve the forElement via alternate means possibly accepting an actual element reference in the JS scope you should be fully prepared to label that element with this code The choice to resolve target focusElement target for the forElement likely restricts this approach to native form elements and custom form elements that have bought into this technique which could be seen as unfortunate However it does closely mimic the Cross root Aria Delegation specification that is currently under development and widely agreed to across the various browser vendors Here we gate between supporting elements in the same DOM tree and those separated by shadow boundaries This ensures that our accessibility story continues to be delivered on even though native ID references are not able to bridge this divide themselves When attempting to apply this same pattern to lt testing ay help text gt you ll quickly discover that there is not aria description attribute Because of this associating our help text across shadow boundaries is a little more complex const proxy document createElement span proxy id complex non reusable id proxy hidden true proxy textContent this labelText this forElement insertAdjacentElement afterend proxy const conditionDescribedby conditionAttributeWithId this forElement aria describedby complex non reusable id this conditionDescribedby gt proxy remove conditionDescribedby Here we create a proxy element to inject into the DOM tree on the other side of the shadow boundary with which to associate the help text provided to our form element This does mean that our lt testing ay help text gt will be injecting DOM into a rendering scope that is does not own and it is important to keep in mind the limitations and dangers of doing so when choosing your path forward in this area However even when separated by this shadow boundary if you or the same developer library own the elements on both sides of the divide these realities can be easily handled and the accessibility tree shaped from your content should be both stable and reliable Observing text contentWhen reaching across shadow boundaries to manage these label or description relationships one added responsibility is insuring that the text content applied to the form element across the shadow boundary is kept up to date Our elements will meed to observer their mutations in order to do this public connectedCallback void super connectedCallback if this observer this observer new MutationObserver gt this resolveForElement this observer observe this characterData true subtree true childList true public disconnectedCallback void this observer disconnect super disconnectedCallback private observer MutationObserver The config of characterData true subtree true childList true ensures that the observer will trigger on all changes to the value of el textContent When that content changes it needs to be pushed over the shadow boundary into the other DOM tree so that the accessibility tree can be built with the expected relationships Panelist projects leveraging this techniqueSpectrum Web ComponentsThis pattern is leveraged specifically for the lt sp field label gt element in Spectrum Web Components to deliver label content to lt sp textfield gt elements when finishing the lt input gt interface we ve explored herein lt div gt lt sp field label for input gt Label lt sp field label gt lt sp textfield id input gt lt sp textfield gt lt div gt In the Spectrum Web Components library the lt sp field label gt element uses almost line for line the approaches outlined above so that it can be leveraged in partnership with other native form elements or custom form element surfacing a focusElement property to provide intentional access to specific children in the elements shadow DOM UI Web ComponentsSimilarly the lt ui label gt element in UI Web Components also leverages this technique to a degree lt div gt lt ui label id label for input gt Label lt ui label gt lt ui input id input accessible name ref label gt lt ui input gt lt div gt Here they ve baked for attribute management into the lt ui label gt element and resolution from the form element to the label element via the accessible name ref attribute as part of their AriaLabelHelper utility Yet another example as to how we re really only scratching the surface as to how you could ship accessible UI with shadow roots by looking at the handful of techniques included in this article In memoriamIf you hitherto thought that it was not possible to make shadow DOM accessible thanks for sticking around this far to have that misunderstanding cleared up If you understood how shadow DOM could be accessible thanks for sticking around this far to hear about ways that I understand to do so Hopefully everyone has a couple of extra tools for making their next web component or one they re already shipping even more accessible But remember this is just a couple of the possibilities If you ve got other techniques that you know use or love please please share them in the comments so that whether it s me or the next developer the community at large can put them in their tool belt as well Or even better if you see something I missed something I did wrong or something you re want to know more about get that conversation going The only way we can all get better at delivering accessible UIs is by making it central to the conversation of delivering UIs Sharing what we know asking questions about what we don t and pushing the envelope in every direction is a big part of that I look forward to seeing it below In the next life Like I mentioned at the start there are MANY concepts around shipping a complete web component that we have not covered in this conversation Including content stylingform associationstate managementvalidationEach and every one of these topics and more would make a great follow up article expanding on these above patterns in any one of those directions I can t make any promises but I ll do my best if you re interested in it I d love to partner support cheer you on as it comes together On top of that there are some more varied and complex patterns for accessibility with web component that could be useful to dig into as well In particular the Vaadin panel touched on the super useful combobox patterns currently begin shipped by various products from other panelists which is currently raising up the backlog of Spectrum Web Components Sharing thoughts on how to bring that experience to the web with custom elements and shadow DOM might be just the nudge needed to actually get development of that pattern finished Let s keep talking about accessibility Let s keep making our UIs and components accessible Let s find new and better patterns for doing it together See you next time |
2022-02-22 13:16:49 |
Apple |
AppleInsider - Frontpage News |
Apple's Mac mini dips to $499 thanks to month-end price drops |
https://appleinsider.com/articles/22/02/22/apples-mac-mini-dips-to-499-thanks-to-month-end-price-drops?utm_medium=rss
|
Apple x s Mac mini dips to thanks to month end price dropsWhether you re in the market for the cheapest Mac mini period or are looking for a tricked out Apple Silicon spec there are cash discounts of up to off going on now at leading Apple resellers Month end Mac mini dealsMonth end Mac mini deals are in effect now with the Intel quad core spec leading the way at off at B amp H Photo This GHz Core i model has GB of RAM and a GB SSD ーall packed in the Space Gray chassis Read more |
2022-02-22 13:53:32 |
Apple |
AppleInsider - Frontpage News |
Microsoft Edge poised to overtake Safari as second biggest desktop browser |
https://appleinsider.com/articles/22/02/22/microsoft-edge-poised-to-overtake-safari-as-second-biggest-desktop-browser?utm_medium=rss
|
Microsoft Edge poised to overtake Safari as second biggest desktop browserMicrosoft is narrowing the gap between Edge and Apple s Safari as the second most used desktop browser in the world with a change in position potentially happening within months Web browsing is dominated by Google Chrome with it being the most popular desktop browser by a huge margin However in the closely fought battle for second place Apple s Safari may soon lose its position to Microsoft Edge The replacement to the once dominant Internet Explorer Microsoft Edge has slowly gained an audience according to StatCounter s Desktop Browser Market Share charts Over the last year it has moved from a percent share in January to percent in January Read more |
2022-02-22 13:50:56 |
Apple |
AppleInsider - Frontpage News |
Eve Water Guard updated with support for Thread |
https://appleinsider.com/articles/22/02/22/eve-water-guard-updated-with-support-for-thread?utm_medium=rss
|
Eve Water Guard updated with support for ThreadThe HomeKit enabled Eve Water Guard has been updated today with support for Thread connectivity Eve Water GuardDesigned for the bathroom basement laundry room and under sinks the Eve Water Guard aims to help prevent costly repair bills stemming from water damage Read more |
2022-02-22 13:41:02 |
Apple |
AppleInsider - Frontpage News |
Apple's upgraded MacBook Pro 16-inch with 1TB SSD dips to $2,499 ($200 off), in stock today |
https://appleinsider.com/articles/22/02/21/apples-upgraded-macbook-pro-16-inch-with-1tb-ssd-dips-to-2499-200-off-in-stock-today?utm_medium=rss
|
Apple x s upgraded MacBook Pro inch with TB SSD dips to off in stock todayA top seller thanks to TB of storage Apple s latest inch MacBook Pro is off ーand optional AppleCare is an additional off as well Units are in stock and ready to ship putting the system in your hands up to a month quicker than ordering from Apple directly Save instantlyApple itself is reporting a month long delay on the new inch MacBook Pro with a spacious TB SSD but you can get the upgraded model at Apple Authorized Reseller Adorama right now ーand save with promo code APINSIDER when shopping through this cost saving activation link with the activation instructions below Read more |
2022-02-22 13:37:48 |
Apple |
AppleInsider - Frontpage News |
Amazon slashes 14-inch MacBook Pro to $1,799, marking cheapest 2022 price |
https://appleinsider.com/articles/22/02/18/amazon-slashes-14-inch-macbook-pro-to-1799-marking-cheapest-2022-price?utm_medium=rss
|
Amazon slashes inch MacBook Pro to marking cheapest priceAnother MacBook Pro price drop has been issued at Amazon delivering the cheapest inch MacBook Pro price we ve seen in at off Amazon MacBook Pro saleMarking the return of Black Friday pricing Amazon has dropped the cost of the standard inch MacBook Pro with Apple s M Pro chip core CPU core GPU GB RAM and a GB SSD to while supplies last Read more |
2022-02-22 13:48:06 |
海外TECH |
Engadget |
Spotify's Car Thing is now available in the US, no invite required |
https://www.engadget.com/spotify-car-thing-us-availability-price-specs-133048126.html?src=rss
|
Spotify x s Car Thing is now available in the US no invite requiredSpotify s Car Thing a dedicated player for the streaming service first debuted last April after breaking from cover nearly two years prior Back then you needed to be part of a select few to get one In October the company expanded its invite list for all users in the US but there was still a queue to wait in Today Spotify announced that the Car Thing is available for anyone in the States to purchase directly from the company The device is and requires a Premium subscription for you to be able to use it in your car but you no longer need an invite to buy it As a refresher Car Thing essentially a Spotify box for most cars ーso long as you have an aux jack or Bluetooth connectivity You ll also need easy access to a power source for the player Car Thing then connects to your phone via Bluetooth and acts as a touch screen controller for the Spotify app just in a more car friendly form nbsp There are plenty of easy to navigate menus all of your favorites and a slew of convenient controls ーincluding programmable preset buttons a rotating dial and the company s own voice assistant Think of it as one of those satellite radio receivers from the early aughts only designed for the streaming age It s built for die hard users of the service and it frees up your phone screen to stay on Waze or Google Maps even when you re scrolling over to another podcast nbsp If you re interested in taking the leap Car Thing is now available to purchase directly from Spotify |
2022-02-22 13:30:48 |
海外TECH |
Engadget |
OpenSea faces $1 million lawsuit over stolen Bored Ape NFTs |
https://www.engadget.com/open-sea-facing-1-million-lawsuit-over-stolen-bored-app-nft-133044623.html?src=rss
|
OpenSea faces million lawsuit over stolen Bored Ape NFTsA man who unknowingly sold his Bored Ape NFT for a pittance is suing OpenSea claiming it knew about a flaw in its platform that allowed hackers to buy unlisted NFTs at a fraction of the market price decrypt has reported Timothy McKimmy alleged in a complaint that he didn t even list his Bored Ape for sale but a hacker managed to buy it for just ETH and turn around and sell it for ETH at current prices nbsp The Ape is one of limited edition Bored Ape Yacht Club primate NFTs and supposedly in the top th percentile in terms of value McKimmy said in the lawsuit He noted that it s significantly rarer than one recently purchased by Justin Bieber for million Thus he s seeking quot the return of the Bored Ape and or damages over million quot nbsp Moreover he claims that OpenSea knew about the bug that was widely reported in the media but refused to halt trading quot Instead of shutting down its platform to address and rectify these security issues Defendant continued to operate quot he said in the complaint McKimmy was a victim of the quot inactive listing quot exploit on OpenSea that saw multiple users lose up to million in NFTs OpenSea has reportedly been approaching some victims to settle offering them a lower price than their NFT may be worth according to decrypt nbsp The lawsuit may not be the last it faces over the inactive listing hack as a law firm is reportedly soliciting complaints from other OpenSea users The platform is also facing a separate phishing campaign that resulted in theft of NFTs but OpenSea said that that didn t arise from any platform vulnerability nbsp |
2022-02-22 13:30:44 |
海外TECH |
Engadget |
Sony reveals its PlayStation VR2 headset |
https://www.engadget.com/sony-psvr2-headset-first-look-131513416.html?src=rss
|
Sony reveals its PlayStation VR headsetSony has today showed off the full and finished design of the PlayStation VR headset as well as updated shots of the VR Sense controller PlayStation SVP Hidekai Nishino explains over on the PlayStation blog that the matching design of both headset and controller are designed to represent the degree view of the virtual world He added that the look and feel was crafted to feel more congruent with the PlayStation s overall vibe albeit in a more softer body friendly manner Nishino writes that a big focus was on ergonomics and that the initial feedback from testers has been positive In addition there is a new lens adjustment dial to help users ensure good eye comfort as well as new ventilation to improve airflow He ended by saying that the new unit has a “single cord set up which should make getting things up and running a little easier than with the original PSVR Sadly there s no word on if this will have a knock on effect with the pricing or anything else but for now we ll just sit contentedly staring at the must have gadget of uh whenever it arrives |
2022-02-22 13:15:13 |
金融 |
RSS FILE - 日本証券業協会 |
新型コロナウイルス感染症への証券関係機関等・各証券会社の対応について(リンク集) |
https://www.jsda.or.jp/shinchaku/coronavirus/link.html
|
新型コロナウイルス |
2022-02-22 14:40:00 |
海外ニュース |
Japan Times latest articles |
Government representative attends annual Takeshima Day event for 10th year in a row |
https://www.japantimes.co.jp/news/2022/02/22/national/takeshima-day-event/
|
Government representative attends annual Takeshima Day event for th year in a rowThis year Hiroo Kotera parliamentary vice minister within the Cabinet Office joined the event held in the Shimane Prefecture capital of Matsue along with some |
2022-02-22 22:09:41 |
ニュース |
BBC News - Home |
Boris Johnson announces UK sanctions against Russia |
https://www.bbc.co.uk/news/uk-politics-60476137?at_medium=RSS&at_campaign=KARANGA
|
ukraine |
2022-02-22 13:46:59 |
ニュース |
BBC News - Home |
Ukraine crisis: Russia orders troops into rebel-held regions |
https://www.bbc.co.uk/news/world-europe-60468237?at_medium=RSS&at_campaign=KARANGA
|
condemnation |
2022-02-22 13:04:13 |
ニュース |
BBC News - Home |
Queen cancels virtual engagements as mild Covid persists |
https://www.bbc.co.uk/news/uk-60477065?at_medium=RSS&at_campaign=KARANGA
|
duties |
2022-02-22 13:03:54 |
ニュース |
BBC News - Home |
Convicted bombers guilty of attacking prison officer |
https://www.bbc.co.uk/news/uk-60437894?at_medium=RSS&at_campaign=KARANGA
|
security |
2022-02-22 13:20:32 |
ニュース |
BBC News - Home |
Ukraine-Russia tensions: Oil surges on supply fears |
https://www.bbc.co.uk/news/business-60473233?at_medium=RSS&at_campaign=KARANGA
|
petrol |
2022-02-22 13:31:20 |
ニュース |
BBC News - Home |
UK storms: Flooding and more rain may hamper recovery efforts |
https://www.bbc.co.uk/news/uk-60476704?at_medium=RSS&at_campaign=KARANGA
|
clean |
2022-02-22 13:19:41 |
ニュース |
BBC News - Home |
River Severn Flooding: Homes and businesses evacuated |
https://www.bbc.co.uk/news/uk-england-shropshire-60475077?at_medium=RSS&at_campaign=KARANGA
|
shropshire |
2022-02-22 13:02:10 |
ニュース |
BBC News - Home |
Emily Maitlis and Jon Sopel to leave BBC to launch podcast and host LBC show |
https://www.bbc.co.uk/news/entertainment-arts-60479609?at_medium=RSS&at_campaign=KARANGA
|
global |
2022-02-22 13:34:16 |
ニュース |
BBC News - Home |
Ukraine crisis: How much Russian money is there in the UK? |
https://www.bbc.co.uk/news/60348046?at_medium=RSS&at_campaign=KARANGA
|
russian |
2022-02-22 13:13:29 |
ニュース |
BBC News - Home |
Uefa likely to move Champions League final from St Petersburg as Ukraine-Russia crisis escalates |
https://www.bbc.co.uk/sport/football/60474920?at_medium=RSS&at_campaign=KARANGA
|
Uefa likely to move Champions League final from St Petersburg as Ukraine Russia crisis escalatesUefa is almost certain to switch the this season s Champions League final away from St Petersburg amid the Ukraine Russia crisis |
2022-02-22 13:39:40 |
ニュース |
BBC News - Home |
Ireland beat Oman to qualify for Men's T20 World Cup |
https://www.bbc.co.uk/sport/cricket/60478547?at_medium=RSS&at_campaign=KARANGA
|
australia |
2022-02-22 13:21:57 |
ニュース |
BBC News - Home |
Ukraine: What sanctions are being imposed on Russia? |
https://www.bbc.co.uk/news/world-europe-60125659?at_medium=RSS&at_campaign=KARANGA
|
russia |
2022-02-22 13:16:49 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
ドイツ、送ガス管の承認停止 ロシアのウクライナ派兵受け - WSJ発 |
https://diamond.jp/articles/-/297172
|
派兵 |
2022-02-22 22:24:00 |
北海道 |
北海道新聞 |
北斗多重衝突 車両戻らず心身疲弊 80台なお立ち往生 数が多すぎ長期化も |
https://www.hokkaido-np.co.jp/article/648862/
|
立ち往生 |
2022-02-22 22:18:40 |
北海道 |
北海道新聞 |
JR23日、349本運休 HAP運航再開目指す |
https://www.hokkaido-np.co.jp/article/648876/
|
冬型の気圧配置 |
2022-02-22 22:16:54 |
ビジネス |
東洋経済オンライン |
中国半導体SMIC「米国制裁」でも業績絶好調の訳 現行世代技術の生産能力を計画を超えて増強 | 「財新」中国Biz&Tech | 東洋経済オンライン |
https://toyokeizai.net/articles/-/512245?utm_source=rss&utm_medium=http&utm_campaign=link_back
|
biztech |
2022-02-22 22:30:00 |
コメント
コメントを投稿