すべてのUXの可用性とインターフェイス
1)なぜ重要なのか
法的および倫理的に:インターフェイスは、視覚、聴覚、運動、認知障害のある人々を除外すべきではありません。
ビジネス効果:より多くのユーザー、より高い変換と保持、より良いSEOとコード品質。
操作的に:アクセシビリティはプロセスであり「、ランダムな修正」ではありません。
2)基礎と原則(POUR)
知覚:コントラスト、代替テキスト、字幕。
操作可能:すべてはキーボード、目に見える焦点、一時停止/停止アニメーションからアクセスできます。
理解:予測可能なナビゲーション、明確なエラー、簡単な製剤。
堅牢:正しいHTML/ARIAセマンティクス、支援技術との互換性。
3)セマンティクス、タイトル、ARIA
ARIAの前の意味マークアップ:'<button>'、 '<nav>'、 '<form>'、 '<table>'-目的による。
ヘッダー階層:1ページあたり1 '<h1>'、次に論理構造'<h2>'-'<h3>'。
ランドマーク:'<header>'、 '<main>'、 '<aside>'、 '<footer>'、 '<nav>'-ヘルプスクリーンリーダー。
必要に応じてのみARIA: 'role'、 'aria-label'、 'aria-description'、 'aria-expanded'、 'aria-expanded'、 'aria-live'。
'aria-invalid'、 'aria-errormessage'による状態/エラー。
4)キーボードおよび焦点管理
フルキーボードコントロール:'Tab/Shift+Tab'-order、 'Enter/Space'-activate、 'Esc'-exit。
目に見える焦点は常に;アウトラインを無効にしないでください。
フォーカストラップ:モーダルで-サイクルフォーカス、終了後にソースにフォーカスを返します。
隠し要素はタブの順序に該当しないでください('display: none'、 'aria-hidden=」true」')。
リンクをスキップ:「メインコンテンツに移動」-ページの先頭に。
5)色、対照およびタイポグラフィ
テキストコントラスト:少なくとも4。5:1はプレーンテキスト用、3:1は大きなテキスト用です。
色だけに頼らないでください:アイコン/パターン/署名で複製します。
クリック可能なターゲットのサイズ:少なくとも40-48 px、周りに十分なフィールド。
フォント:読み取り可能な書体、行間1。4–1.6のライン長さ45-90の特性。
6)動き、アニメーションおよびepileptogenicフラッシュ
簡略化されたアニメーションを追加したり、視差を無効にしたりすることで、システムの優先度を下げるモーションフラグを尊重します。
ちらつき>3回/秒を避けて下さい。
すべてのオートモーションには、Pause/Stop/Hideが必要です。
7)フォーム、エラー、検証
ラベルとフィールドを明示的にバインドします:'<label for=「id」>'。
プレースホルダはラベルではありません。
フィールドと上部のエラー要約の横にあるエラーメッセージ。'aria-describedby'でバインドします。
入力形式、例、マスクを説明します。単位と通貨を指定します。
エラーが発生したときに完了したフィールドをリセットしないでください。問題のフィールドに集中してください。
html
<label for="email">Эл. почта</label>
<input id="email" name="email" type="email" aria-describedby="email-hint email-err">
<div id="email-hint" class="hint">Мы не рассылаем спам</div>
<div id="email-err" class="error" role="alert">Укажите адрес в формате name@example.com</div>
8)コンポーネントとインタラクティブ: パターン
ボタンとリンク:action='<button>'、 jump='<a>'。
タブ/アコーディオン:ナビゲーション矢印、'aria-controls'、' aria-selected'。
モーダル/ダイアログ:'role=「dialog」、' aria-modal=「true」、フォーカストラップ、'Esc'が閉じます。
ツールチップ/ポップオーバー:キーボードのアクセシビリティ、タイムアウトは読み取りを妨げません。
ドラッグ&ドロップ:選択肢-上下ボタン、キーボードの矢印を移動します。マウスだけではありません。
9)メディア: ビデオ/オーディオ/グラフィックス
ビデオ:字幕、トランスクリプト、代替オーディオ説明(AD)トラック。
オーディオ:テキストトランスクリプト。
グラフ/ダイアグラム:テキストの要約(「重要なもの」)、データテーブル、軸の説明ラベル。
リビングエリア:'aria-live="polite"/"assertive"-あまりにも頻繁に"叫ばないように注意してください。
10)テーブルとリスト
11) i18n、ロケールおよびRTL
htmlルートの'lang'属性。ローカル番号/日付/通貨形式。
RTLサポート(アラビア語/ヘブライ語):アイコンのミラーリング、ナビゲーション順序、カーソル。
アイコンに縫い付けられた単語は避けてください(テキストは翻訳可能でなければなりません)。
簡単な公式は、専門用語を避けます;用語の用語集。
12)時間、セッション、キャプチャと代替案
タイムアウト-警告と拡張機能を備えています。
CAPTCHA:選択肢を好む(質問、見えないボットアナライザ、メール/電話による確認)。あなたが使用する場合-テキストの代替だけでなく、視覚的。
認証:パスワードマネージャのサポート「、パスワードを表示」、WebAuthn。
13)感覚および運動障害のためのアクセシビリティ
ジェスチャーには、クリック/キーボードと同等のものが必要です。
代替なしで長いホールド/ダブルタップを必要としません。
「ポインターキャンセル」:キャンセルのチャンスを与えるために「プレス」ではなく、リリース時にアクションを実行する必要があります。
14)国、通知、アラート
動的メッセージには'role="status"/"alert'を使用します。
粘着バナーであなたの焦点をカバーしないでください。
トースト通知-フォーカス/ホバーで一時停止し、キーボードからアクセス。
15)テストプラン(手動および自動車)
マニュアル(最小):- すべてのキースクリプトをキーボードでのみ渡します。
- 各アイテムのフォーカスの可視性を確認します。
- 最大200%ズーム-インターフェイスは水平スクロールなしで機能します。
- システムモードをオンにする「動きを減らす」-アニメーションは干渉しません。
- スクリーンリーダー(NVDA/VoiceOver)でスクリプトを渡し、ロール/タグ/順序が正しいことを確認します。
- コンポーネントレベルのアクセシビリティリント。
- コントラスト、代替テキスト、ヘッダー順序、ARIAの有効性を確認します。
- クリティカルスクリーン用のセマンティクス(ロールツリー)のスナップショット。
16)アベイラビリティ品質指標
A11yの適用範囲:完了されたチェックリストが付いている部品の割合。
キーボードのみのパスレート:キーボードによってトラバースされるスクリプトの割合。
要素Violations/1kコントラスト。
SR Flow Time:スクリーンリーダーを使用したスクリプトの実行時間。
ユーザーフィードバック:可用性、応答時間、修正に関する苦情。
17)コンポーネントのチェックリスト
- 冗長ARIAのない正しいセマンティクス/ロール
- 署名されたラベル、'aria-'正しい
- 完全なキーボード制御、目に見える焦点
- テキスト/アイコン/ボーダーコントラストが正常
- エラーと条件はスクリーンリーダーによって発声されます
- Respect prefers-reduced-motion
- クリック可能なエリアサイズ≥ 40-48 px
- ローカライズとRTLはレイアウトを壊さない
18)アンチパターン
ロール/キーボードなしの"Div-buttons'。
「アウトライン:なし」のフォーカスを非表示にします。
ラベルの代わりにプレースホルダ。
色のみのエラー。
フォーカストトラップのないモーダルと'Esc'のないモーダル。
キーボードなしでドラッグのみ。
無効にするオプションなしで長い自動スクロール/パララックス。
19)役割とプロセス
コマンド(Product/Design/Dev)でA11y-ownerします。
データ定義(DoD)には可用性が含まれます。
デザインレビュー:コントラスト、フォーカス、ラベルのチェック。
コードレビュー:セマンティクス/ARIA、キーボードテスト。
定期的な監査と改善計画。
20)イテレーションによる実装
反復1-基礎(2週間):- セマンティクス/タイトル、コントラスト、フォーカスとキーボード、基本的なフォームとエラー。
- モーダル、タブ/アコーディオン、テキストの要約が付いているテーブル/グラフ、ビデオ字幕、減らされたアニメーション。
- CI、 RTL/i18n、指標、定期的な監査、チームトレーニングのオートテスト。
21)テンプレートとスニペット
Modalka(簡体字):html
<div role="dialog" aria-modal="true" aria-labelledby="dlg-title" aria-describedby="dlg-desc">
<h2 id="dlg-title">Подтвердите действие</h2>
<p id="dlg-desc">Эта операция необратима.</p>
<button>Отмена</button>
<button>Подтвердить</button>
</div>
コンテンツボタンにスキップ:
html
<a class="skip-link" href="#main">Перейти к основному содержимому</a>
<main id="main">...</main>
Respect prefers-reduced-motion:
css
@media (prefers-reduced-motion: reduce) {
{ animation-duration: 0.01ms!important; animation-iteration-count: 1!important; transition: none!important; }
}
22) ミニFAQ
別の「視覚障害者バージョン」が必要ですか?
いいえ、そうではありません。設定を持つすべての人に適応性のあるアクセス可能なバージョン。
コントラストだけをチェックするだけで十分ですか?
いいえ、そうではありません。キーボード、フォーカス、セマンティクス、フォームエラー、メディアなどが必要です。
ARIAはすべてを解決しますか?
ARIAは正しくないセマンティクスを修正しません。最初に正しいタグ、次にARIAの改良。
[結果]
可用性はシステム規律です:セマンティクス→キーボード/フォーカス→コントラスト/カラー→フォーム/ミス→メディア/スケジュール→i18n/RTL→テストプランとメトリクス。DoDとチーム文化のアクセシビリティを実現し、製品は真に汎用性が高く、信頼性が高く、誰にでも便利です。