アクセシビリティ

人々はさまざまな方法でウェブにアクセスします。スクリーンを見てマウスを動かす人もいれば、スクリーンが見えず、ページを声で聞く人もいます。マウスを一度も触らず、キーボード、音声、またはスイッチでページをナビゲートする人もいます。アクセシビリティとは、すべての人がページを使えるように作る実践であり、ほとんどはHTMLを本来あるべき形で書くことに帰着します。
アクセシビリティが重要な理由
**アクセシビリティ**とは、どのような環境にいる人でも、どうやってページを閲覧していても、誰もがページを使えるようにすることです。スクリーンが見えず、代わりにページを声で聞く人がいます。マウスを使わずキーボードでページをナビゲートする人もいます。より大きなテキストや強い色が必要な人もいます。
建物の脇に階段と一緒にスロープがある光景を想像してください。スロープは階段をのぼれない人を助け、のぼれる人には何も失わせません。アクセシブルなHTMLも同じ考え方です。ページを開放してより多くの人が使えるようにしても、誰のためにも悪くはなりません。
心強いことに、HTMLは最初からアクセシブルです。コンテンツの各部分に正しい要素を使うことで、ほとんどのところまで無料で到達します。
セマンティックHTMLを基盤として
アクセシビリティのために実行できる最も効果的な単一の事柄は、汎用的な要素を使うのではなく、コンテンツの意味に一致する要素を使うことです。
**セマンティックHTML**とは、見た目のためではなく、コンテンツが何であるかのためにタグを選ぶことです。見出しは<h1>から<h6>を使います。ボタンは<button>を使います。リンクは<a>を使います。リストは<ul>または<ol>を使います。これらのそれぞれは既にスクリーンリーダーが発表できる意味を持っているため、聞き手は見えなくても「これはボタンです」または「これは見出しです」と知ります。
それは家を引っ越すときに箱にラベルを貼ることのようなものです。「キッチン」とマークされた箱は、それをパックした人だけでなく、それを運ぶ誰もを助けます。セマンティックタグは同じ方法であなたのコンテンツにラベルを付けるため、ブラウザと支援技術は各部分が何であるかを知ります。
実践では、これはボタンを見た目に似せたように見える<div>ではなく、ボタンが必要な場合に<button>に到達することを意味します。<div>は同じように見えるように作ることができますが、それが何であるかについて何も言いません。セマンティックHTMLの章はすべての集合を通ります。
<button>はボタンのために、<h1>は見出しのために、<a>はリンクのために。それぞれはスクリーンリーダーに何であるかを既に伝えるため、無料で得ます。スタイル設定された<div>は同じように見えることができ、まだ何も言いません。 テキスト代替、ラベル、フォーカス、そしてキーボード
いくつかのコンテンツはそれ自体で話すことができません。画像はスクリーンリーダーが説明するまで見えません。フォームフィールドはラベルが付くまで推測です。そしてマウスにのみ反応するページは誰もがそれを使わない人を除外します。これら4つの領域は少しの注意が長い道のりに行く場所です。
信頼できる習慣の一握りはこのほとんどをカバーします。
- 画像にはalt属性が必要です。
alt属性は見えない誰にでも画像を説明します。画像が装飾的なだけの場合、空のalt=""はスクリーンリーダーにそれをスキップするよう指示します。
<img src="red-fox.jpg" alt="雪の中で眠っている赤いキツネ">- フォームフィールドにはラベルが必要です。
<label>は訪問者とスクリーンリーダーの両方にフィールドに入力するものを指示します。
<label for="email">メールアドレス</label>
<input id="email" type="email">- ボタンとリンクは明確なテキストが必要です。 コンテキストから外れて読まれた場合、「もっと読む」は不明確です。「チケット価格についてもっと読む」は単独で意味があります。
- キーボード順序は読む順序に一致する必要があります。 Tabキーを押す誰かがHTMLの要素が現れる順序でページを通り抜けるため、その順序を合理的に保ちます。
altを与え、フォームフィールドに<label>を与え、単独で意味のあるボタンとリンクテキストを書き、タブ順序を読む順序と一致させます。そのどれも長い時間がかかりません。装飾的な画像は空のalt=""を得ます。そのためスキップされます。 ARIA、そして最初にそれに到達しない理由
特にアクセシビリティのために作られた一組のHTML属性があります。それはARIAと呼ばれます。それは正しい場所で有用であり、それはプラットフォームで最も誤用される部分の1つであるため、それが何をするか、いつそれをそのままにしておくかの両方を理解する価値があります。
**ARIA**はAccessible Rich Internet Applicationsの略です。それは要素に追加できる余分な属性の一組で、支援技術についてそれについて詳しく指示します。名前はそれが最初に到達するツールのように聞こえます。そして通常は最後です。
理由は単純です。ARIAが説明できるほとんどは、HTMLは既にそれ自体で言っています。<button>は既にボタンとして発表されます。それにrole="button"を追加することは何も変わりません。あなたが要素が何であるかを説明するためにARIAを追加してしまう場合、それは通常それが既に言う平文HTML要素に交換する兆候です。
粘着ノートが移動ボックスに追加される光景を想像してください。ボックスが既に「キッチン」と印刷されている場合、「キッチン」を読む粘着ノートはただ混乱を追加します。ラベルを持たない独自のボックスのためにノートを保存します。ARIAはHTMLが要素を持たないページの部分のためです。それは聞こえるより稀です。
<button>は既にそれがボタンであることを言います。HTMLが要素を持たないページの稀な部分のためにARIAを保存し、他のすべてを平文に保ちます。 簡単な自己監査
最も一般的な問題をキャッチするために、専門家用ソフトウェアは必要ありません。機械に既にあるツールを使った数個のチェックはそれらのほとんどを見つけ、そしてそれらは実行するのにわずか2分かかります。
あなたが任意のページで実行できる短いチェックリストは次の通りです。
- マウスを脇に置き、Tabキーを押します。すべてのリンクとボタンに到達できますか。理にかなった順序で。それらをEnterで活性化できますか。
- すべての画像に
alt属性がありますか。 - すべてのフォームフィールドに
<label>がありますか。 - あなたのボタンとリンクは単独で読まれるとき、まだ意味がありますか。
- テキストはその背景に対して読みやすいですか。
あなた自身のページでこれらを実行することは迅速です。そしてそれは人々が最も多く達成するもの問題をキャッチします。Tabキーがどこかに引っかかるか、画像にaltがない場合、あなたは修正する価値があるものを見つけました。
altがあること、すべてのフィールドに<label>があること、そしてテキストがその背景に対して明確に読むことを確認します。この数分でページを使用する人が最も達成するもの問題をキャッチします。 
