dom-accessibility-api
Advanced tools
Changelog
0.5.10
#770 7066180
Thanks @eps1lon! - Allow computing name for inaccessible elements
This is mainly targetted at integration with @testing-library/dom
.
But it can also be used as a general performance boost when used in a JSDOM environment.
The rationale is that most elements are part of the a11y tree.
In those cases computing a11y tree exclusion is wasted.
Since it's expensive, we can disable it.
The recommendation is to only ignore a11y tree inclusion locally and specifically
enable it for the tests where you do know that a11y tree inclusion will play a role.
Changelog
0.5.6
#666 26ee73d
Thanks @eps1lon! - Consider <label />
when computing the accessible name of <output />
Given
<label for="outputid">Output Label</label> <output id="outputid"></output>
Previously the accessible name of the <output />
would ignore the <label />
.
However, an <output />
is labelable and therefore the accessible name is now computed using <label />
elements if they exists.
In this example the accessible name is "Output Label"
.
Changelog
0.5.5
#627 0485441
Thanks @eps1lon! - Ensure certain babel helpers aren't required
Source:
-const [item] = list;
+const item = list[0];
Transpiled:
-var _trim$split = list.trim().split(" "),
-_trim$split2 = _slicedToArray(_trim$split, 1),
-item = _trim$split2[0]
+var item = list[0];
#629 383bdb6
Thanks @eps1lon! - Use label attribute for naming of <optgroup>
elements.
Given
<select>
<optgroup label="foo">
<option value="1">bar</option>
</optgroup>
</select>
Previously the <optgroup />
would not have an accessible name.
Though 2D in accname
1.2 could be interpreted to use the label
attribute:
Otherwise, if the current node's native markup provides an attribute (e.g. title) or element (e.g. HTML label) that defines a text alternative, return that alternative [...]
This was confirmed in NVDA + FireFox.
Changelog
0.5.4
3866289
#442 Thanks @geoffrich! - Correctly determine accessible name when element contains a slot.
Previously, computing the accessible name would only examine child nodes. However, content placed in a slot is is an assigned node, not a child node.
If you have a custom element custom-button
with a slot:
<button><slot></slot></button>
<!-- accname of inner <button> is 'Custom name' (previously '') -->
<custom-button>Custom name</custom-button>
If you have a custom element custom-button-default
with default content in the slot:
<button><slot>Default name</slot></button>
<!-- accname of inner <button> is 'Custom name' (previously 'Default name') -->
<custom-button-default>Custom name</custom-button-default>
<!-- accname of inner <button> is 'Default name' (previously 'Default name') -->
<custom-button-default></custom-button-default>
This is not currently defined in the accname spec but reflects current browser behavior.
Changelog
0.5.3
76e8f93
#430 Thanks @ckundo! - Maintain img
role for img
with missing alt
attribute.
Previously <img />
would be treated the same as <img alt />
.
<img />
is now treated as role="img"
as specified.
Changelog
0.5.2
03273b7
#406 Thanks @eps1lon! - Fix various issues for input types submit
, reset
and image
Prefer input value
when type
is reset
or submit
:
<input type="submit" value="Submit values">
-// accessible name: "Submit"
+// accessible name: "Submit values"
<input type="reset" value="Reset form">
-// accessible name: "Reset"
+// accessible name: "Reset form"
For input type
image
consider alt
attribute or fall back to "Submit query"
.