You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While testing the language selector on nodejs.org with Windows Narrator, I identified an accessibility issue affecting multilingual announcements.
When navigating the language dropdown on the English page (<html lang="en">), some language options (e.g., Japanese, Korean, Chinese, Tamil, Ukrainian) are not properly announced by Narrator.
Instead of reading the visible label (e.g., 日本語, 한국어, 中文, தமிழ், Українська), Narrator only announces positional information such as “5 of 14”. The actual language name is not spoken.
This makes it impossible for screen reader users to determine which language they are selecting.
Because the page is lang="en", Narrator attempts to interpret the Japanese text using English pronunciation rules. This can result in Incorrect pronunciation Or the text not being announced at all. Only positional information being spoken.
Expected Behavior
Each option should be fully announced, for example: “Japanese, 5 of 14”, “Korean, 6 of 14”. Screen reader users must be able to identify which language they are selecting.
Additional Testing Welcome
I tested this issue using Windows Narrator on Windows. Testing and confirmation on other platforms and screen readers would be very helpful, including macOS (VoiceOver), Android (TalkBack), NVDA.
If others can reproduce or provide additional findings across platforms, that would help validate the > fix and ensure consistent multilingual accessibility
If maintainers agree with this approach, I would be happy to work on a fix.
While testing the language selector on nodejs.org with Windows Narrator, I identified an accessibility issue affecting multilingual announcements.
When navigating the language dropdown on the English page (
<html lang="en">), some language options (e.g., Japanese, Korean, Chinese, Tamil, Ukrainian) are not properly announced by Narrator.Instead of reading the visible label (e.g., 日本語, 한국어, 中文, தமிழ், Українська), Narrator only announces positional information such as “5 of 14”. The actual language name is not spoken.
This makes it impossible for screen reader users to determine which language they are selecting.
Watch a11y issue testing
Root cause
Because the page is lang="en", Narrator attempts to interpret the Japanese text using English pronunciation rules. This can result in Incorrect pronunciation Or the text not being announced at all. Only positional information being spoken.
Expected Behavior
Each option should be fully announced, for example: “Japanese, 5 of 14”, “Korean, 6 of 14”. Screen reader users must be able to identify which language they are selecting.
Fix
Add appropriate
langattributes to each language option.Ref WCAG 2.2 – Success Criterion 3.1.2 (Language of Parts)
URL:
https://nodejs.org
Browser Name:
Chrome
Browser Version:
latest
Operating System:
windows 11
Note
Additional Testing Welcome
I tested this issue using Windows Narrator on Windows. Testing and confirmation on other platforms and screen readers would be very helpful, including macOS (VoiceOver), Android (TalkBack), NVDA.
If others can reproduce or provide additional findings across platforms, that would help validate the > fix and ensure consistent multilingual accessibility