Fix accessibility regression and further improvements #96
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes a few changes regarding accessibility. The module has been tested with the Orca screen reader on Linux.
aria-
attributes made a small mistake by using the attributearia-role
instead ofrole
. The latter is the standard, the former does not exist. This resulted in a major regression in accessibility, as Orca would immediately switch away from focus mode back into browse mode when using the input (where most letters function as buttons to navigate the page, making it impossible to type anything). All occurences ofaria-role
have been replaced byrole
and now function correctly.aria-activedescendant
, which handles the currently selected option and makes the screen reader speak out that option when changed. However, due to how the IDs for the option divs are set, it was possible to receive changed suggestions, but have an option with the same ID selected, which resulted in no text being read out. To solve this, a string hash on the query string has been added into the IDs to ensurearia-activedescendant
is updated when new results might be available. The div foremptyMsg
has also been given a similar ID to allow screen readers to read it out.aria-
attributes were added -aria-owns
to mark the ownership relation in addition to the cause-and-effect relation, andaria-haspopup
to make the screen reader tell the user that the input will open a listbox when used.