2

form and search landmarks

 1 year ago
source link: https://www.matuzo.at/blog/2023/form-and-search-landmark/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

form and search landmarks

posted on June 28., 2023

I wanted to know how well common screen readers and browsers support search and form landmarks. Here are my results:

Software/OS/browser

  • NVDA 2023.1 with Firefox 114
  • VoiceOver macOS 13.4.1 with Safari 16.5.1
  • Talkback Android 13 with Chrome 114
  • JAWS 2023.2212.13 with Edge 114
  • Narrator Windows 10 with Edge 114
  • VoiceOver iOS 15.7.7 with Safari

form role

Summary: You can use it, but forms won't be exposed as landmarks on VoiceOver and Talkback. To get the best results label the form.

NVDA Voice Over (macOS) Talkback Jaws Narrator VoiceOver (iOs)
no role and no label no landmark no landmark no landmark* no landmark no landmark no landmark
no role, labelled by heading form (labelled) no landmark no landmark* form (labelled) form landmark (labelled) no landmark
role but no label form (unlabelled) no landmark no landmark* no landmark form landmark (unlabelled) no landmark
role, labelled by heading form (labelled) no landmark no landmark* form (labelled) form landmark (labelled) no landmark
no role, labelled by legend form (labelled) no landmark no landmark* group (labelled) form landmark (labelled) no landmark
role, labelled by legend form (labelled) no landmark no landmark* group (labelled) form landmark (labelled) no landmark

form with no role and no label

<form>
<h3>example 1</h3>

<label>
XY
<input type="text">
</label>
</form>

form with no role, labelled by heading

<h3 id="form2">example2</h3>
<form aria-labelledby="form2">
<label>
XY
<input type="text">
</label>
</form>

form with form role and no label

<form role="form">
<label>
XY
<input type="text">
</label>
</form>

form with form role labelled by heading

<h3 id="form4">example 4</h3>
<form role="form" aria-labelledby="form4">
<label>
XY
<input type="text">
</label>
</form>

form with no role labelled by legend

<form aria-labelledby="form5">
<fieldset>
<legend id="form5">example 5</legend>

<label>
XY
<input type="text">
</label>
</fieldset>
</form>

form with form role labelled by legend

<form role="form" aria-labelledby="form6">
<fieldset>
<legend id="form6">example 6</legend>

<label>
XY
<input type="text">
</label>
</fieldset>
</form>

search role

Summary: Great overall support for the search role. The <search> element has no support yet. You can use the search element in combination with the role attribute.

NVDA Voice Over (macOS) Talkback Jaws Narrator VoiceOver (iOs)
role but no label search landmark (unlabelled) search (unlabelled) search (unlabelled) search region (unlabelled) search landmark (unlabelled) search landmark (unlabelled)
role, labelled by heading search landmark (labelled) search (labelled) search (labelled) search region (labelled) search landmark (labelled) search landmark (labelled)
search element with no label no landmark no landmark no landmark* no landmark no landmark no landmark
search element with role but no label search landmark (unlabelled) search (unlabelled) search (unlabelled) search region (unlabelled) search landmark (unlabelled) search landmark (unlabelled)
search element with role, labelled by heading search landmark (labelled) search (labelled) search (labelled) search region (labelled) search landmark (labelled) search landmark (labelled)

form with search role and no label

<form role="search">
<label>
XY
<input type="text">
</label>
</form>

form with search role labelled by heading

<h3 id="form8">example 8</h3>
<form role="search" aria-labelledby="form8">
<label>
XY
<input type="text">
</label>
</form>

search element with no label

<search>
<form>
<label>
XY
<input type="text">
</label>
</form>
</search>

search element with search role and no label

<search role="search">
<form>
<label>
XY
<input type="text">
</label>
</form>
</search>

search element with search role labelled by heading

 <search role="search" aria-labelledby="form11">
<h3 id="form11">example 11</h3>
<form>
<label>
XY
<input type="text">
</label>
</form>
</search>

* (but accessible via landmark navigation)

My blog doesn't support comments yet, but you can reply via e-mail.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK