Test setup
This test can be used to check how well certain attributes are machine translated and then read out by screen readers or ignored. The results should be self-explanatory.
Text in italics are the text subjects.
aria-label
Each of the following elements has an aria-label of "some text" and a text node of "not a label". Check the source for each element.
not a label
not a label
not a label
aria-description
Each of the following elements has an aria-description of "some text" and a text node of "not a description". Check the source for each element.
not a description
not a description
not a description
aria-labelledby
Each of the following elements has an aria-labelledby of "labelled by" and a text node of "not labelled by". Check the source for each element.
not labelled by
not labelled by
not labelled by
aria-describedby
Each of the following elements has an aria-describedby of "described by" and a text node of "not described by". Check the source for each element.
not described by
not described by
not described by
title
Each of the following elements has a title of "some text " and a text node of "no title". Check the source for each element.
no title
no title
no title
no title
alt
Lastly an image with the alt-text of "A man holding and looking intently at a small kitten. The kitten looks bored into the camera." The photo is from pixelbay.
The following are the labelledby and describedby sources.
described by
labelled by
Test results
Note: I set all devices to German for this test.
The test was conducted July 14, 2025.
| Language / Translation | Attribute correctly read in selected lang? | Element | JAWS 2025 (2025.2506.170) with Chrome | JAWS 2025 with Firefox | JAWS 2025 with Edge | NVDA (2025.1.2) with Chrome | NVDA with Firefox | VO Safari Mac OS 15.3.1 | VO Safari iOS 18.5 | Talkback on Android 15 |
|---|---|---|---|---|---|---|---|---|---|---|
| Page as is | aria-label | h4 | label | label | label | label | label | label | label | label |
| button | label | label | label | label | label | label | label | label | ||
| p | node | node | node | node | node | label, group, node | node | node | ||
| span inside p | node | node | node | node | node | label, group, node | node | node | ||
| aria-description | h4 | node, then description | node, then description | node | description, then node | description, then node | node, then description | node, then description | node, then description | |
| button | node, then description | node, then description | node, then description | description, then node | description, then node | node, then description | node, then description | node, then description | ||
| p | node, then description | node, then description | node | description, then node | description, then node | node | node, then description | node, then description | ||
| span inside p | node, then description | node, then description | node | description, then node | description, then node | node | node, then description | node, then description | ||
| aria-labelledby | h4 | labelled by | labelled by | labelled by | labelled by | labelled by | labelled by | labelled by | labelled by | |
| button | labelled by | labelled by | labelled by | labelled by | labelled by | labelled by | labelled by | labelled by | ||
| p | node | node | node | node | node | labelledby, group, node | node | labelled by | ||
| span inside p | node | node | node | node | node | labelledby, group, node | node | labelled by | ||
| aria-describedby | h4 | node | node | node | node | node | node, described by | node, described by | node, described by | |
| button | node, then described by | node, then described by | node, then described by | node | node | node, described by | node, described by | node, described by | ||
| p | node | node | node | node | node | node | node, described by | node, described by | ||
| span inside p | node | node | node | node | node | node | node, described by | node, described by | ||
| title | h4 | node, then title | node, then title | node | node | node | node, then title | node, then title | node, then title | |
| button | node, then title | node, then title | node, then title | node | node | node, then title | node, then title | node, then title | ||
| p | node, then title | node | node | node | node | title, group, node | node | node, then title | ||
| span inside p | node, then title | node | node | node | node | node | node | node, then title | ||
| abbr | node, then title | node | node | node | node | node | node | only title | ||
| alt | read | read | read | read | read | read | read | is ignored, instead a file name without suffix is being read out. | ||
| translated to german | aria-label | h4 | label | label (not translated) | label | label | label (not translated) | label | label | label |
| button | label | label (not translated) | label | label | label (not translated) | label | label | label | ||
| p | node | node | node | node | node | label, group, node | node | node | ||
| span inside p | node | node | node | node | node | label, group, node | node | node | ||
| aria-description | h4 | node, then description, description not translated | node, then description, description not translated | node | description, not translated, node | description, not translated, node | node, then description | node, then description | node, then description | |
| button | node, then description, description not translated | node, then description, description not translated | node, then description, description not translated | description, not translated, node | description, not translated, node | node, then description | node, then description | node, then description | ||
| p | node, then description, description not translated | node, then description, description not translated | node | description, not translated, node | description, not translated, node | node | node, then description | node, then description | ||
| span inside p | node, then description, description not translated | node, then description, description not translated | node | description, not translated, node | description, not translated, node | node | node, then description | node, then description | ||
| aria-labelledby | h4 | labelledby | labelledby | labelledby | labelledby | labelledby | labelled by | labelled by | labelledby | |
| button | labelledby | labelledby | labelledby | labelledby | labelledby | labelled by | labelled by | labelledby | ||
| p | node | node | node | node | node | labelledby, group, node | node | labelledby | ||
| span inside p | node | node | node | node | node | labelledby, group, node | node | labelledby | ||
| aria-descripedby | h4 | node | node | node | node | node | node, described by | node, described by | node, described by | |
| button | node, then description | node, then description | node, then description | node | node | node, described by | node, described by | node, described by | ||
| p | node | node | node | node | node | node | node, described by | node, described by | ||
| span inside p | node | node | node | node | node | node | node, described by | node, described by | ||
| title | h4 | node, then title | node, then title | node | node | node | node, then title | node, then title | node, then title | |
| button | node, then title | node, then title | node, then title, title not translated | node | node | node, then title | node, then title | node, then title | ||
| p | node, then title | node | node | node | node | title, group, node | node | node, then title | ||
| span inside p | node, then title | node | node | node | node | node | node | node, then title | ||
| abbr | node, then title | node | node | node | node | node | node | only title | ||
| alt | read | read but not translated | read | read | read but not translated | alt text is read | alt text is read | is ignored, instead a file name without suffix is being read out. |