Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 38 additions & 9 deletions examples/combobox/combobox-autocomplete-both.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,9 @@ <h2 id="ex_label">Example</h2>
<input id="cb1-input" class="cb_edit" type="text" role="combobox" aria-autocomplete="both"
aria-expanded="false" aria-controls="cb1-listbox">
<button type="button" id="cb1-button" aria-label="States" aria-expanded="false" aria-controls="cb1-listbox" tabindex="-1">
<span class="arrow">
<svg width="18" height="16" aria-hidden="true" focusable="false">
<polygon class="outline" points="1,4 17,4 9,15"></polygon>
<polygon class="arrow" points="3,5 15,5 9,13"></polygon>
</svg>
</span>
<svg width="18" height="16" aria-hidden="true" focusable="false" style="forced-color-adjust: auto">
<polygon class="arrow" stroke-width="0" fill-opacity="0.75" fill="currentColor" points="3,6 15,6 9,14"></polygon>
</svg>
</button>
</div>
<ul id="cb1-listbox" role="listbox" aria-label="States">
Expand Down Expand Up @@ -128,6 +125,38 @@ <h2 id="ex_label">Example</h2>
<div role="separator" id="ex_end_sep" aria-labelledby="ex_end_sep ex_label" aria-label="End of"></div>
</section>

<section>
<h2>Accessibility Features</h2>
<ul>
<li>
Browsers do not manage visibility of elements referenced by aria-activedescendant like they do for elements with focus.
When a keyboard event changes the active option in the listbox, the JavaScript scrolls the option referenced by aria-activedescendant into view.
Managing aria-activedescendant visibility is essential to accessibility for people who use a browser's zoom feature to increase the size of content.
</li>
<li>
To enhance perceivability when operating the combobox, visual keyboard focus and hover are styled using the CSS <code>:hover</code> pseudo-class, and <code>focus</code> and <code>blur</code> event handlers:
<ul>
<li>To make it easier to perceive when the combobox receives focus, focus creates a 2 pixel focus ring around both the <code>input</code> and <code>button</code> elements with 2 pixels of space between the focus ring and the combobox.</li>
<li>To make it easier to perceive that either the input or button can be clicked to open the listbox, hover causes the same styling as focus.</li>
<li>To help people with visual impairments identify the combobox as an interactive element, the cursor is changed to a pointer when hovering over the combobox or list.</li>
<li>To make it easier to distinguish the selected listbox option from other options, selection creates a 2 pixel border above and below the option.</li>
<li>
Note: Because transparent borders are visible on some systems with operating system high contrast settings enabled, transparency cannot be used to create a visual difference between the element that is focused an other elements.
Instead of using transparency, the focused element has a thicker border and less padding.
When an element receives focus, its border changes from zero to two pixels and padding is reduced by two pixels.
When an element loses focus, its border changes from two pixels to two and padding is increased by two pixels.
</li>
</ul>
<li>
To ensure the inline SVG graphic used for the arrow in the open button has sufficient contrast with the background when high contrast settings change the color of text content,
CSS <code>forced-color-adjust</code> is set to <code>auto</code> on the <code>svg</code> element and and the <code>fill</code> attribute of the <code>polygon</code> element is set to <code>currentColor</code>.
This causes the colors of the <code>fill</code> of the polygon elements to be overridden by the high contrast color setting.
If <code>forced-color-adjust</code> were not used to override the colors specified for the <code>fill</code> property, the color would remain the same in high contrast mode, which could lead to insufficient contrast between the arrow and the background or even make it invisible if the color matched the high contrast mode background.<br>
Note: The explicit setting of <code>forced-color-adjust</code> is necessary because some browsers do not use <code>auto</code> as the default value for SVG graphics.
</li>
</ul>
</section>

<section>
<h2 id="kbd_label">Keyboard Support</h2>
<p>
Expand Down Expand Up @@ -325,7 +354,7 @@ <h3 id="rps_label_textbox">Textbox</h3>
<tr data-test-id="combobox-aria-controls">
<td></td>
<th scope="row">
<code>aria-controls="#IDREF"</code>
<code>aria-controls="ID_REF"</code>
</th>
<td><code>input[type="text"]</code></td>
<td>Identifies the element that serves as the popup.</td>
Expand Down Expand Up @@ -362,7 +391,7 @@ <h3 id="rps_label_textbox">Textbox</h3>
<tr data-test-id="combobox-aria-activedescendant">
<td></td>
<th scope="row">
<code>aria-activedescendant="IDREF"</code>
<code>aria-activedescendant="ID_REF"</code>
</th>
<td><code>input[type="text"]</code></td>
<td>
Expand Down Expand Up @@ -467,7 +496,7 @@ <h3 id="rps_label_button">Button</h3>
<tr data-test-id="button-aria-controls">
<td></td>
<th scope="row">
<code>aria-controls="#IDREF"</code>
<code>aria-controls="ID_REF"</code>
</th>
<td><code>button</code></td>
<td>Identifies the element that serves as the popup.</td>
Expand Down
47 changes: 38 additions & 9 deletions examples/combobox/combobox-autocomplete-list.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,9 @@ <h2 id="ex_label">Example</h2>
<input id="cb1-input" class="cb_edit" type="text" role="combobox" aria-autocomplete="list"
aria-expanded="false" aria-controls="cb1-listbox">
<button id="cb1-button" tabindex="-1" aria-label="States" aria-expanded="false" aria-controls="cb1-listbox">
<span class="arrow">
<svg width="18" height="16" aria-hidden="true" focusable="false">
<polygon class="outline" points="1,4 17,4 9,15"></polygon>
<polygon class="arrow" points="3,5 15,5 9,13"></polygon>
</svg>
</span>
<svg width="18" height="16" aria-hidden="true" focusable="false" style="forced-color-adjust: auto">
<polygon class="arrow" stroke-width="0" fill-opacity="0.75" fill="currentColor" points="3,6 15,6 9,14"></polygon>
</svg>
</button>
</div>
<ul id="cb1-listbox" role="listbox" aria-label="States">
Expand Down Expand Up @@ -129,6 +126,38 @@ <h2 id="ex_label">Example</h2>
<div role="separator" id="ex_end_sep" aria-labelledby="ex_end_sep ex_label" aria-label="End of"></div>
</section>

<section>
<h2>Accessibility Features</h2>
<ul>
<li>
Browsers do not manage visibility of elements referenced by aria-activedescendant like they do for elements with focus.
When a keyboard event changes the active option in the listbox, the JavaScript scrolls the option referenced by aria-activedescendant into view.
Managing aria-activedescendant visibility is essential to accessibility for people who use a browser's zoom feature to increase the size of content.
</li>
<li>
To enhance perceivability when operating the combobox, visual keyboard focus and hover are styled using the CSS <code>:hover</code> pseudo-class, and <code>focus</code> and <code>blur</code> event handlers:
<ul>
<li>To make it easier to perceive when the combobox receives focus, focus creates a 2 pixel focus ring around both the <code>input</code> and <code>button</code> elements with 2 pixels of space between the focus ring and the combobox.</li>
<li>To make it easier to perceive that either the input or button can be clicked to open the listbox, hover causes the same styling as focus.</li>
<li>To help people with visual impairments identify the combobox as an interactive element, the cursor is changed to a pointer when hovering over the combobox or list.</li>
<li>To make it easier to distinguish the selected listbox option from other options, selection creates a 2 pixel border above and below the option.</li>
<li>
Note: Because transparent borders are visible on some systems with operating system high contrast settings enabled, transparency cannot be used to create a visual difference between the element that is focused an other elements.
Instead of using transparency, the focused element has a thicker border and less padding.
When an element receives focus, its border changes from zero to two pixels and padding is reduced by two pixels.
When an element loses focus, its border changes from two pixels to two and padding is increased by two pixels.
</li>
</ul>
<li>
To ensure the inline SVG graphic used for the arrow in the open button has sufficient contrast with the background when high contrast settings change the color of text content,
CSS <code>forced-color-adjust</code> is set to <code>auto</code> on the <code>svg</code> element and and the <code>fill</code> attribute of the <code>polygon</code> element is set to <code>currentColor</code>.
This causes the colors of the <code>fill</code> of the polygon elements to be overridden by the high contrast color setting.
If <code>forced-color-adjust</code> were not used to override the colors specified for the <code>fill</code> property, the color would remain the same in high contrast mode, which could lead to insufficient contrast between the arrow and the background or even make it invisible if the color matched the high contrast mode background.<br>
Note: The explicit setting of <code>forced-color-adjust</code> is necessary because some browsers do not use <code>auto</code> as the default value for SVG graphics.
</li>
</ul>
</section>

<section>
<h2 id="kbd_label">Keyboard Support</h2>
<p>
Expand Down Expand Up @@ -320,7 +349,7 @@ <h3 id="rps_label_textbox">Textbox</h3>
<tr data-test-id="combobox-aria-controls">
<td></td>
<th scope="row">
<code>aria-controls="#IDREF"</code>
<code>aria-controls="ID_REF"</code>
</th>
<td><code>input[type="text"]</code></td>
<td>Identifies the element that serves as the popup.</td>
Expand Down Expand Up @@ -357,7 +386,7 @@ <h3 id="rps_label_textbox">Textbox</h3>
<tr data-test-id="combobox-aria-activedescendant">
<td></td>
<th scope="row">
<code>aria-activedescendant="IDREF"</code>
<code>aria-activedescendant="ID_REF"</code>
</th>
<td><code>input[type="text"]</code></td>
<td>
Expand Down Expand Up @@ -462,7 +491,7 @@ <h3 id="rps_label_button">Button</h3>
<tr data-test-id="button-aria-controls">
<td></td>
<th scope="row">
<code>aria-controls="#IDREF"</code>
<code>aria-controls="ID_REF"</code>
</th>
<td><code>button</code></td>
<td>Identifies the element that serves as the popup.</td>
Expand Down
47 changes: 38 additions & 9 deletions examples/combobox/combobox-autocomplete-none.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,9 @@ <h2 id="ex_label">Example</h2>
aria-expanded="false"
aria-controls="cb1-listbox">
<button type="button" id="cb1-button" tabindex="-1" aria-label="Previous Searches" aria-expanded="false" aria-controls="cb1-listbox" >
<span class="arrow">
<svg width="18" height="16" aria-hidden="true" focusable="false">
<polygon class="outline" points="1,4 17,4 9,15"></polygon>
<polygon class="arrow" points="3,5 15,5 9,13"></polygon>
</svg>
</span>
<svg width="18" height="16" aria-hidden="true" focusable="false" style="forced-color-adjust: auto">
<polygon class="arrow" stroke-width="0" fill-opacity="0.75" fill="currentColor" points="3,6 15,6 9,14"></polygon>
</svg>
</button>
</div>
<ul id="cb1-listbox" role="listbox" aria-label="Previous Searches">
Expand All @@ -84,6 +81,38 @@ <h2 id="ex_label">Example</h2>
<div role="separator" id="ex_end_sep" aria-labelledby="ex_end_sep ex_label" aria-label="End of"></div>
</section>

<section>
<h2>Accessibility Features</h2>
<ul>
<li>
Browsers do not manage visibility of elements referenced by aria-activedescendant like they do for elements with focus.
When a keyboard event changes the active option in the listbox, the JavaScript scrolls the option referenced by aria-activedescendant into view.
Managing aria-activedescendant visibility is essential to accessibility for people who use a browser's zoom feature to increase the size of content.
</li>
<li>
To enhance perceivability when operating the combobox, visual keyboard focus and hover are styled using the CSS <code>:hover</code> pseudo-class, and <code>focus</code> and <code>blur</code> event handlers:
<ul>
<li>To make it easier to perceive when the combobox receives focus, focus creates a 2 pixel focus ring around both the <code>input</code> and <code>button</code> elements with 2 pixels of space between the focus ring and the combobox.</li>
<li>To make it easier to perceive that either the input or button can be clicked to open the listbox, hover causes the same styling as focus.</li>
<li>To help people with visual impairments identify the combobox as an interactive element, the cursor is changed to a pointer when hovering over the combobox or list.</li>
<li>To make it easier to distinguish the selected listbox option from other options, selection creates a 2 pixel border above and below the option.</li>
<li>
Note: Because transparent borders are visible on some systems with operating system high contrast settings enabled, transparency cannot be used to create a visual difference between the element that is focused an other elements.
Instead of using transparency, the focused element has a thicker border and less padding.
When an element receives focus, its border changes from zero to two pixels and padding is reduced by two pixels.
When an element loses focus, its border changes from two pixels to two and padding is increased by two pixels.
</li>
</ul>
<li>
To ensure the inline SVG graphic used for the arrow in the open button has sufficient contrast with the background when high contrast settings change the color of text content,
CSS <code>forced-color-adjust</code> is set to <code>auto</code> on the <code>svg</code> element and and the <code>fill</code> attribute of the <code>polygon</code> element is set to <code>currentColor</code>.
This causes the colors of the <code>fill</code> of the polygon elements to be overridden by the high contrast color setting.
If <code>forced-color-adjust</code> were not used to override the colors specified for the <code>fill</code> property, the color would remain the same in high contrast mode, which could lead to insufficient contrast between the arrow and the background or even make it invisible if the color matched the high contrast mode background.<br>
Note: The explicit setting of <code>forced-color-adjust</code> is necessary because some browsers do not use <code>auto</code> as the default value for SVG graphics.
</li>
</ul>
</section>

<section>
<h2 id="kbd_label">Keyboard Support</h2>
<p>
Expand Down Expand Up @@ -269,7 +298,7 @@ <h3 id="rps_label_textbox">Textbox</h3>
<tr data-test-id="combobox-aria-controls">
<td></td>
<th scope="row">
<code>aria-controls="#IDREF"</code>
<code>aria-controls="ID_REF"</code>
</th>
<td><code>input[type="text"]</code></td>
<td>Identifies the element that serves as the popup.</td>
Expand Down Expand Up @@ -306,7 +335,7 @@ <h3 id="rps_label_textbox">Textbox</h3>
<tr data-test-id="combobox-aria-activedescendant">
<td></td>
<th scope="row">
<code>aria-activedescendant="IDREF"</code>
<code>aria-activedescendant="ID_REF"</code>
</th>
<td><code>input[type="text"]</code></td>
<td>
Expand Down Expand Up @@ -410,7 +439,7 @@ <h3 id="rps_label_button">Button</h3>
<tr data-test-id="button-aria-controls">
<td></td>
<th scope="row">
<code>aria-controls="#IDREF"</code>
<code>aria-controls="ID_REF"</code>
</th>
<td><code>button</code></td>
<td>Identifies the element that serves as the popup.</td>
Expand Down
Loading