開発
開発とは、HTML、CSS、JavaScript等によるフロントエンド開発を指します。要件定義とビジュアルデザインに基づいて、ウェブページのテンプレートや、テンプレートに使用する部品(パーツやコンポーネント)といった、ウェブサイトの骨組みを制作します。
開発・運用
パーツやコンポーネントは、ウェブページのUI(User Interface ユーザインタフェース)を構成する部品で、ユーザーとコンテンツの間に存在する操作可能な部分全般を指します。 ウェブサイトのレイアウトや文字、メニュー、ボタン、フォームの入力欄などのようなユーザとの接点を担っており、UIがアクセシブルであるかそうでないかはUX(User Experience ユーザーエクスペリエンス)に大きな影響を与えます。
開発にあたっては、次の点に注意します。
- キーボード操作を可能にする
- 支援技術に適切にアクセシビリティツリーを提供する
- HTMLの標準にある要素・コンポーネントをなるべく活用する
- 結果が予測できるインタラクションを提供する
情報設計やビジュアルデザインを経た内容に基づいていても、実際に開発を行う際に条件の組み合わせや技術的な観点から問題が発見される場合もあります。そのような場合はデザインや設計の双方を見直し、根本的解決に努めるようにしてください。
また、開発では常にアクセシビリティチェックを行うようにしてください。バリデーションチェックなどと同様にツールによるチェックをCI/CD(Continuous Integration / Continuous Delivery 継続的インテグレーション/継続的デリバリー)の開発工程に組み込むことで、問題の早期発見・早期解決につながります。
キーボード操作を可能にする
ウェブサイトの閲覧・操作方法はマウスやタッチ操作だけではなく、多岐に渡ります。例えば上肢障害を持つユーザーはトラックボールによって、全盲などスクリーンリーダーを使用しているユーザーはキーボードによって、肢体不自由のユーザーは視線入力装置によって閲覧や操作をしています。(ほかにも多くの支援技術があります。) キーボード操作ができる状態は、さまざまな支援技術に対応できる状態と言えます。デバイスに合わせてマウスやタッチ操作などの機能をキー入力に割り当てることができるからです。
支援技術に適切にアクセシビリティに関する情報を提供する
スクリーンリーダーなどの支援技術では、コンテンツの情報とあわせてアクセシビリティに関する情報を受け取ることができます。 見出しの箇所が<h1>や<h2>が用いられていれば、「見出し」であることを、リンクに<a>が用いられていれば「リンク」といったように読み上げます。視覚で得ているウェブページの構造やコンテンツの種類などの情報に応じた要素を選択し、支援技術に適切なアクセシビリティ情報が提供されるようにする必要があります。 このようにコンテンツの情報(意味)、構造や役割に応じた要素を用いて、セマンティックなマークアップを行うことがアクセシビリティでは重要になります。
コンテンツの情報(意味)、構造や役割に応じた要素を用いている例
<h3>CBT</h3>
<p>CBTとはコンピューターで試験を実施する方法です。豊富な実績を持つプロメトリックのCBTは、47都道府県120都市に設置した高品質で利便性の高い試験会場で厳格性と公平性を約束した受験機会を提供します。</p>
<a href="/organizer/cbt/"><p class="index-text-link">CBTについて</p></a>
<h3>試験開発支援サービス</h3>
<p>試験の品質を高い水準で維持・向上するため、テスト理論等に基づく科学的な試験結果分析や試験問題作成支援を行います。</p>
<a href="/organizer/ibt/"><p class="index-text-link">試験開発支援サービスについて</p></a>コンテンツの情報(意味)、構造や役割に応じた要素を用いていない例
<p>CBT</p>
<p>CBTとはコンピューターで試験を実施する方法です。豊富な実績を持つプロメトリックのCBTは、47都道府県120都市に設置した高品質で利便性の高い試験会場で厳格性と公平性を約束した受験機会を提供します。</p>
<a href="/organizer/cbt/"><p class="index-text-link">CBTについて</p></a>
<p>試験開発支援サービス</p>
<p>試験の品質を高い水準で維持・向上するため、テスト理論等に基づく科学的な試験結果分析や試験問題作成支援を行います。</p>
<a href="/organizer/ibt/"><p class="index-text-link">試験開発支援サービスについて</p></a>HTMLの標準にある要素・コンポーネントをなるべく活用する
コンテンツの情報(意味)、構造や役割に応じた要素を用いる上でもう一つ重要なことは、開発に用いる言語の技術仕様に従うことです。技術仕様に沿って開発することで、マシンリーダビリティも確保されます。 また、既にアクセシブルであることがわかっているUIパーツやコンポーネントを活用するのもよい方法です。
独自にUIパーツやコンポーネントの開発が必要な場合も、可能な範囲でHTML標準の要素を用いるようにします。 標準にない要素を用いると、アクセシビリティの情報の提供やキーボード操作への対応をはじめとして、テストやメンテナンスなど、将来の運用・品質管理までを見据えた計画が必要になります。
参照資料
- HTML Living Standard (英語のみ)
HTML 仕様書 - WCAG、JIS X 8341-3:2016
- 解説書 (Understanding)
- テクニック集 (Techniques)
- アクセシビリティ サポーテッド(AS)情報
WAICによる、ブラウザと支援技術による検証結果情報
- ARIA Authoring Practices Guide(APG)(英語のみ)
W3CによるUIのパターンガイド - Can I use… (英語のみ)
HTML、CSSなどブラウザでの対応状況が確認できるポータルサイト - Carbon Design System
IBMによるオープンソースのデザインシステム
結果が予測できるインタラクションを提供する
すべてのインタラクションの結果はユーザーが予測可能なようにします。インタラクションの結果、ユーザーが意図しない変化をもたらすことは、ユーザーのストレスや混乱をもたらし、目的の達成を妨げることになります。 HTMLの標準にない要素やコンポーネントを設計する場合は、特に留意してください。
ユーザーが予測し得ないインタラクションの結果の例
- フォームでセレクトボックスのどれかをユーザーが選ぼうとして、フォーカスが対象に移動した瞬間に別のページに移動してしまう
- リンク箇所にマウスホバーした瞬間、あるいはフォーカスが移動した瞬間に、別のページへ遷移してしまう
開発過程にチェックツールによるチェックを組み込む
代表的なアクセシビリティチェックツールには以下のようなものがあります。
- axe
Deque Systems社によるアクセシビリティチェックエンジン。事実上のグローバルスタンダード。 - axe DevTools
Deque Systems社によるアクセシビリティチェックツールのブラウザアドオン。Chrome, Firefox, Edgeなど各メジャーブラウザで利用可能(URLは各ブラウザのオフィシャルページを参照)。 - IBM Equal Access Toolkit
IBMによるアクセシビリティチェックツール。ブラウザアドオンなど複数の形態がある。 - Markuplint
HTML用のリンター。HTMLに関連するいくつかのアクセシビリティチェックが可能。 - Nu HTML Checker
W3CによるHTMLのバリデーションチェックツール。
ツールによるチェックだけではWCAGやJIS X 8341-3:2016の達成基準に関する問題すべてを検出することは出来ません。開発工程の中で、定期的に専門家によるチェックを織り込み、開発工程の中で多くの問題を解決できると、実装工程からの手戻りを減らすことが出来ます。
関連する達成基準
- 達成基準 1.3.1 情報及び関係性
- 達成基準 1.3.2 意味のあるシーケンス
- 達成基準 2.1.1 キーボード
- 達成基準 2.1.2 キーボードトラップなし
- 達成基準 2.1.4 文字キーのショートカット
- 達成基準 2.4.3 フォーカス順序
- 達成基準 2.5.1 ポインタのジェスチャ
- 達成基準 2.5.2 ポインタのキャンセル
- 達成基準 2.5.3 ラベルを含む名前 (name)
- 達成基準 2.5.4 動きによる起動
- 達成基準 2.5.7 ドラッグ動作
- 達成基準 3.2.1 フォーカス時
- 達成基準 3.2.2 入力時
- 達成基準 3.3.1 エラーの特定
- 達成基準 3.3.3 エラー修正の提案
- 達成基準 3.3.4 誤り防止 (法的、金融、データ)
- 達成基準 3.3.7 冗長な入力項目
- 達成基準 3.3.8 アクセシブルな認証 (最低限)
- 達成基準 4.1.2 名前 (name) ・役割 (role) 及び値 (value)
- 達成基準 4.1.3 ステータスメッセージ