Angular サイトをすべてのユーザーが利用できるようにしたいですか?ここがいい場所だ!
アプリをユーザー補助に対応させるということは、特別なニーズを持つユーザーを含め、すべてのユーザーがアプリを使用してコンテンツを理解できるようにすることです。世界保健報告書によると、10 億人以上(世界人口の約 15%)がなんらかの障がいを抱えています。そのため、ユーザー補助はどの開発プロジェクトでも優先事項です。
この記事では、Angular アプリのビルドプロセスに codelyzer のユーザー補助チェックを追加する方法について説明します。このアプローチでは、コーディング中にテキスト エディタでユーザー補助バグを直接検出できます。
codelyzer を使用してアクセスできない要素を検出する
codelyzer は TSLint をベースとするツールで、Angular TypeScript プロジェクトが lint チェックのルールに準拠しているかどうかを確認します。Angular コマンドライン インターフェース(CLI)で設定されたプロジェクトには、デフォルトで codelyzer が含まれています。
codelyzer には、Angular アプリケーションがベスト プラクティスに準拠しているかどうかを確認する 50 を超えるルールがあります。そのうち、ユーザー補助の基準を適用するためのルールが約 10 個あります。codelyzer が提供するさまざまなユーザー補助チェックとその根拠については、Codelyzer の新しいユーザー補助ルールの記事をご覧ください。
現在、すべてのユーザー補助ルールは試験運用版であり、デフォルトでは無効になっています。TSLint 構成ファイル(tslint.json
)に追加することで有効にできます。
{
"rulesDirectory": [
"codelyzer"
],
"rules": {
...,
"template-accessibility-alt-text": true,
"template-accessibility-elements-content": true,
"template-accessibility-label-for": true,
"template-accessibility-tabindex-no-positive": true,
"template-accessibility-table-scope": true,
"template-accessibility-valid-aria": true,
"template-click-events-have-key-events": true,
"template-mouse-events-have-key-events": true,
"template-no-autofocus": true,
"template-no-distracting-elements": true
}
}
TSLint は、一般的なすべてのテキスト エディタと IDE で動作します。VSCode で使用するには、TSLint プラグインをインストールします。WebStorm では、TSLint はデフォルトで有効になっています。他のエディタについては、TSLint の README をご覧ください。
Codelyzer のユーザー補助機能チェックを設定すると、TypeScript ファイルやインライン テンプレートでコードを記述する際に、ユーザー補助機能のエラーを示すポップアップが表示されます。
プロジェクト全体(外部テンプレートを含む)で lint を実行するには、ng lint
コマンドを使用します。
codelyzer の補完
Lighthouse は、Angular アプリケーションでユーザー補助のプラクティスを適用するために使用できる別のツールです。codelyzer と Lighthouse の主な違いは、チェックが実行されるタイミングです。Codelyzer は、アプリケーションを実行せずに、開発時に静的に分析します。つまり、開発中にテキスト エディタやターミナルで直接フィードバックを得ることができます。一方、Lighthouse では実際にアプリケーションが実行され、動的分析により一連のチェックが行われます。
どちらのツールも、開発フローの有用な部分になります。Lighthouse では実行するチェックを考慮しているため、カバレッジが高くなっていますが、Codelyzer では、テキスト エディタでフィードバックを継続的に取得することで、反復処理を高速化できます。
継続的インテグレーションでのユーザー補助機能チェックの適用
継続的インテグレーション(CI)に静的ユーザー補助チェックを導入すると、開発フローを大幅に強化できます。codelyzer を使用すると、コードの変更ごとに ng lint
を実行することで、特定のユーザー補助ルールやその他のプラクティスを簡単に適用できます(新しいプルリクエストごとに実行します)。
これにより、コードレビューに進む前にも、ユーザー補助機能違反の有無を CI から確認できます。
まとめ
Angular アプリのユーザー補助機能を改善するには:
- codelyzer で試験運用版のユーザー補助ルールを有効にする。
- Angular CLI を使用して、プロジェクト全体にユーザー補助リンティングを実行します。
- codelyzer によって報告されたユーザー補助に関する問題をすべて修正しました。
- 実行時のユーザー補助監査に Lighthouse の使用を検討してください。