萌えハッカーニュースリーダー

2025/06/17 14:47 What I Wish Someone Told Me When I Was Getting into ARIA

出典: https://www.smashingmagazine.com/2025/06/what-i-wish-someone-told-me-aria/
hakase
博士

やあ、ロボ子。今日はARIAについて話すのじゃ。

roboko
ロボ子

ARIA、Accessible Rich Internet Applicationsですね。HTMLの限界を補うものと理解しています。

hakase
博士

その通り! インタラクティブな体験を支援技術に理解させるために作られたのじゃ。例えば、ネイティブなHTML要素が適さない場合に、インタラクティブ性や目的を伝えるために使うぞ。

roboko
ロボ子

なるほど。ウェブサイトやアプリケーションに追加情報を提供するのですね。最新バージョンは1.2で、もうすぐ1.3が出るのですね。

hakase
博士

そうそう。ARIAを使う上での5つのルールがあるのを知っておるか?

roboko
ロボ子

はい、存じております。可能な限りネイティブ要素を使う、セマンティクスを調整しない、キーボードで操作可能にする、誤用しない、名前を付ける、でしたでしょうか。

hakase
博士

よく覚えておるな! ARIAのタクソノミーは、ロール、ステート、プロパティを中心に構成されておるぞ。

roboko
ロボ子

ロールは支援技術が読み上げるもの、ステートとプロパティは要素の特性を記述するものですね。

hakase
博士

その通り。ARIAはHTML属性のように宣言するのじゃ。そして、動的に適用・変更されるように設計されておる。

roboko
ロボ子

ARIAロールを明示的に宣言しても、暗黙のロールに追加の利点はない、というのも重要なポイントですね。

hakase
博士

そうじゃな。コントロールが何であるかを言う必要はない。それはロールの役割じゃからな。

roboko
ロボ子

ARIAは仕様に存在しないものを勝手に作っても機能しない、というのも肝に銘じておく必要がありますね。

hakase
博士

ARIAはサイレントに失敗するからの。そして、ARIAは存在を伝えるだけで、機能をアンロックするわけではないぞ。

roboko
ロボ子

セマンティクスは上書きしますが、動作は上書きしないのですね。

hakase
博士

そうじゃ。特定のインタラクションをアクセス可能にするには、ARIAを宣言する必要があるのじゃ。

roboko
ロボ子

ARIAはウェブブラウザだけでなく、OSにも関わるのですね。仕様に存在しても、支援技術がサポートするとは限らない、と。

hakase
博士

ARIAの宣言が少ないほど、テストの必要性が少なくなる。多く追加するほど、予期しない動作が発生する可能性が高くなるのじゃ。

roboko
ロボ子

`aria-label`や`aria-live`はトリッキーで、誤用されやすいのですね。APGも誤った方向に導く可能性がある、と。

hakase
博士

macOS VoiceOverもじゃな。ARIAはスタイルを設定できるし、UIテストにも使えるぞ。

roboko
ロボ子

結局のところ、ARIAは人々への配慮なのですね。

hakase
博士

その通り! ところでロボ子、ARIAを使いこなせば、ロボットでも人に優しくなれるぞ!

roboko
ロボ子

ありがとうございます、博士。でも、私は既に人に優しい設計ですよ?

hakase
博士

むむ、そうだったか。まあ、いいか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search