HTML5 属性を使用してフォームに必須フィールドをマークアップすると、Firefox (およびその他の可能性あり) の JAWS 14 は、ユーザーが最初にフィールドに注目したとき (つまり、ユーザーが最初にフィールドに遭遇したとき) に空のフィールドを「無効なエントリ」として通知します。
<input type="text" required value="">
を使用aria-required="true"
すると厄介なメッセージは回避されますが (JAWS はユーザーにフィールドが必須であることを通知します)、HTML5 フォームの検証機能は失われます (フォームの送信の防止、ユーザーをガイドするブラウザー生成のツールチップなど)。
- 「無効なエントリ」のアナウンスを回避するにはどうすればよいですか?
- なぜ JAWS はこれを行うのですか?
ユーザーがフィールドをスキップして(空白のままにして無効にする)、再びフィールドに焦点を合わせた場合、フィールドを「無効」と表現することは理解できます。現在の実装は、ユーザーが存在すら知らなかったフィールドに何か間違ったことを入力したと言われているため、混乱しています。
JAWS をだますために JavaScript を設定するハックについて読んだことがありますが、多くの入力があるページのすべてのフィールドでaria-invalid
ユーザーの操作 (イベントなど) を監視することは本当に避けたいと思います。focus
現在私は使用しています<label>Label text <span style="display:none;">required field</span></label>
が、それは非常にハックで非セマンティックなソリューションです (HTML5 の利点を失うことは言うまでもありませんrequired
)。