目次
概要
Flutterでアプリのアクセシビリティ(Accessibility)を検査して向上させる方法を提供しています。
今回のブログポストではFlutterで開発したアプリのアクセシビリティを向上させる方法を説明します。
Google Play Consoleでアクセシビリティ検査
Google Play Consoleに移動して、テスト(Testing) > リリース前レポート(Pre-launch report) > 詳細(Details) > ユーザー補助機能(Accessibility)
から、アプリのアクセシビリティを検査して結果を確認できます。
アプリをリリースする前に、公開/非公開/内部テストを行った場合、このセクションでアクセシビリティの結果を確認できます。特に問題が見つからなければ、アプリのアクセシビリティが良好であると見なすことができます。
このセクションで問題が見つかった場合は、今回のブログポストで紹介した内容を参考にしてアプリのアクセシビリティを向上させることができます。
ウィジェットのアクセシビリティ向上
特定のウィジェットはアクセシビリティ向上のために追加のプロパティを提供します。アクセシビリティ向上のためのプロパティがないウィジェットでも、Semantics
ウィジェットを使ってアクセシビリティを向上させることができます。
IconButtonのアクセシビリティ
IconButton
ウィジェットを使うと、Screen Reader
がそのウィジェットを認識できないことがあります。この場合は、Semantics
ウィジェットを使ってIconButton
ウィジェットをラップするか、IconButton
ウィジェットのTooltip
プロパティを使用してアクセシビリティを向上させることができます。
Semantics
ウィジェットを使った例
Semantics(
button: true,
label: 'Add',
child: IconButton(
icon: Icon(Icons.add),
onPressed: () {},
),
)
Tooltip
プロパティを使った例
IconButton(
icon: Icon(Icons.add),
onPressed: () {},
tooltip: 'Add',
)
TextFieldのアクセシビリティ
TextField
ウィジェットを使う時、labelText
プロパティやhintText
プロパティを使ってアクセシビリティを向上させることができます。
labelText
プロパティを使った例
TextField(
decoration: InputDecoration(
labelText: 'Email',
),
)
hintText
プロパティを使った例
TextField(
decoration: InputDecoration(
hintText: 'Email',
),
)
アクセシビリティ向上のためのSemanticsウィジェット
Semantics
ウィジェットを使ってアクセシビリティを向上させることができます。例えば、Switch
ウィジェットを使う時、Semantics
ウィジェットでSwitch
ウィジェットをラップして、label
プロパティを使ってアクセシビリティを向上させることができます。
Semantics(
label: 'Enable push notifications',
child: Switch(
value: _value,
onChanged: (value) {
setState(() {
_value = value;
});
},
),
)
また、InkWell
ウィジェットを使う時も、Semantics
ウィジェットを使ってアクセシビリティを向上させることができます。
Semantics(
label: 'Open profile',
child: InkWell(
onTap: () {
// Open profile
},
child: Icon(Icons.person),
),
)
色の対比とボタンのサイズ
アクセシビリティを向上させるために、色の対比やボタンのサイズを調整する必要があります。この部分では適切な色の対比とボタンのサイズを使ってアクセシビリティを向上させることができます。
適切な色の対比とサイズを確認するために、Flutter
が提供するアクセシビリティテストを使うことができます。
アクセシビリティテスト
Flutter
でアクセシビリティを向上させるために、アクセシビリティテストを行うことができます。アクセシビリティテストを行うことで、アプリのアクセシビリティが向上しているかどうかを確認することができます。
Flutter
のウィジェットテストコードで次のようにアクセシビリティテストを追加することができます。
testWidgets('Check accessibility', (WidgetTester tester) async {
final SemanticsHandle handle = tester.ensureSemantics();
await tester.pumpWidget(TargetWidget());
await expectLater(tester, meetsGuideline(androidTapTargetGuideline));
await expectLater(tester, meetsGuideline(iOSTapTargetGuideline));
await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
await expectLater(tester, meetsGuideline(textContrastGuideline));
handle.dispose();
});
このテストコードを使って、色の対比やボタンのサイズ、スクリーンリーダーが認識できるラベルなどを確認することができます。
完了
これで、Flutter
で開発したアプリのアクセシビリティを向上させる方法について説明しました。また、Flutter
が提供するアクセシビリティテストを使ってアクセシビリティを向上させる方法についても説明しました。
みなさんもFlutter
で開発したアプリのアクセシビリティを向上させるために、テストコードを書いてアクセシビリティを向上させる方法を適用してみてください。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。