テンポラリーメール受信ボックスのReact実装で、loading・empty・error・ready 状態を型で明確に定義する設計。フォーカス管理と aria-live によるアクセシブルなフィードバック、リクエスト ID で古い結果を無視する方法を解説。
シェアックリップ
シェアされたアックリップです。
そのほかの #React ピックアップ
自分のアプリの紹介サイトに置いた四つのアニメーション付きデモのコードを振り返り、同じ遅延処理が繰り返されている点や、動きを減らす設定(reduced motion)の確認を行っていない点を解説している。
Reactのフォーム部品の設計を、ラベルやメッセージ行などの共通の構造、react-hook-form と zod への接続、スマートフォンでの操作の3点から解説する。例には作者が開発するUIライブラリを使っている。
Fluent UIのReact v9とWeb Componentsが、Shadow DOMやPortal、ダイアログでフォーカスやキーボード操作をどう扱っているかを、公式ドキュメントとソースで確かめながら論じる記事である。UIライブラリの設計判断が主題である。
Reactでアイコンだけのボタンやリンクに名前がないと、スクリーンリーダーが「button」とだけ読み上げる問題を扱う。aria-labelや視覚的に隠したテキストで名前を付ける方法を、axeの検査結果とともに示す。
リンクプレビュー画像に代替テキストを付けるための og:image:alt と twitter:image:alt の書き方を解説する記事。カードの画像で伝えるべき内容の書き方と、Next.js App Router での設定方法も扱う。
React のモーダルダイアログを、役割の指定・初期フォーカス・フォーカストラップなどの要件から解説する記事。oks-ui の Modal を Chromium・Firefox・WebKit で検証した結果も載る。
そのほかの #WAI-ARIA ピックアップ
Four form components hold every form in our app, and writing this post found the one bug in them
アプリ「Nakodo」のフォーム部品の設計を解説する記事。失敗の通知と成功の通知で role を使い分ける理由と、入力欄の補足(ヒント)が入力欄に関連付けられておらず、スクリーンリーダーで読まれない不具合を扱う。
WordPressのヒーロースライダーで、画像をWebPに変換するだけでなく、優先読み込み・遅延読み込み・レイアウト確保を組み合わせ、表示されていないスライドをaria-hiddenで読み上げ対象から外す手法を解説する記事。
WordPressのヒーロースライダーの画像を、PNGからWebPに変えて合計約7.8MBから約316KBへ軽くした手順を解説する。あわせて、非表示のスライドを aria-hidden で読み上げの対象から外す方法と、Playwright による自動確認を紹介する。
モーダルダイアログのフォーカス管理を解説する記事。フォーカスをダイアログ内に閉じ込める実装と、閉じたあとに元の要素へ戻す挙動を扱う。HTML の dialog 要素を使えば、背景の操作を止める処理を自前で書かずに済むとする。
Fluent UIのReact v9とWeb Componentsが、Shadow DOMやPortal、ダイアログでフォーカスやキーボード操作をどう扱っているかを、公式ドキュメントとソースで確かめながら論じる記事である。UIライブラリの設計判断が主題である。
Shadow DOM の内側にあるボタンなどの要素が、支援技術にどう伝わるかを扱う記事である。DOM・Accessibility Tree・プラットフォーム API の関係を仕様と Chrome での観察から整理し、カスタム要素に意味を持たせる設計の選択肢を示している。