Beyond the Div: Leveraging Semantic HTML to Solve Complex ARIA Failures in Modern React Applications
ReactアプリケーションにおけるセマンティックHTMLの活用により過度なARIA使用を避け、複雑なアクセシビリティ障害を解決する手法を解説する記事。
シェアされたアックリップです。
ReactアプリケーションにおけるセマンティックHTMLの活用により過度なARIA使用を避け、複雑なアクセシビリティ障害を解決する手法を解説する記事。
モバイル表示で幅広いテーブルがページ横スクロールを引き起こす問題。テーブルをスクロール可能なコンテナで包み、キーボード利用者が操作できる実装方法を説明。
React で FAQ の答えを state でマウント解除する実装と、`<details>` 要素で常に DOM に保持する実装を比較。マウント解除すると find-in-page 検索が失敗し、トランジション不可になるほか、client component 化を強いる。ネイティブ実装なら同じ見た目でこれらの制約がない。
React Modal コンポーネント(oks-ui)の実装ガイド。role="dialog"・aria-modal="true"・accessible name・フォーカス管理・キーボード操作をカバー。複数ブラウザで動作確認済み。
GitHubCopilotやFluentUIといったAIやコンポーネントライブラリが個別実装を支援しても、アクセシビリティや業務要件といった品質判断は設計者に残ることを述べ、AI時代のフロントエンド設計における実装と品質判断の役割分担を整理する
インタラクティブリストがWebの標準パターンであるにもかかわらずプラットフォームでサポートされていない問題を指摘。アクセシビリティ関連の最新記事・ガイドライン・ツールをキュレーション。
CSSで生成されたアイコンはスクリーンリーダーに無視されるため、アイコンのみのボタンには必ず名前が必要。alternative-text構文で名前を供給する実装手法を説明。
React で FAQ の答えを state でマウント解除する実装と、`<details>` 要素で常に DOM に保持する実装を比較。マウント解除すると find-in-page 検索が失敗し、トランジション不可になるほか、client component 化を強いる。ネイティブ実装なら同じ見た目でこれらの制約がない。
React Modal コンポーネント(oks-ui)の実装ガイド。role="dialog"・aria-modal="true"・accessible name・フォーカス管理・キーボード操作をカバー。複数ブラウザで動作確認済み。
WCAG準拠だけでなく、個々のアクセシビリティニーズに適応するインターフェースへ。agentic AIが複数のタスクを協調させながら個人化されたアクセシビリティ体験を実現する可能性を探る。
テンポラリーメール受信ボックスのReact実装で、loading・empty・error・ready 状態を型で明確に定義する設計。フォーカス管理と aria-live によるアクセシブルなフィードバック、リクエスト ID で古い結果を無視する方法を解説。
ブレッドクラムコンポーネントの実装例を紹介。型定義で最後の項目の href を省き、HTML では aria-current="page" と aria-hidden を使い分け、JSON-LD では position を 1 から始めてリンクのない項目の item を省く設計。
React で一時メール確認フローを実装する際、ステートマシンで状態を明示的に管理し、aria-live で状態変化を通知。ポーリング時に cancelled フラグで不要なレンダリングを避け、アクセシビリティと性能の両立を実現する。