Closed clpetersonucf closed 11 months ago
Really like this implementation. Keyboard navigation feels good. I think the down
key for word options feels especially intuitive. The aria labels, descriptions, and live regions are also great. Some things I found:
Additional updates:
"Let it ride" issues or could not resolve:
Final todos:
Final (?) tweaks:
Agree with Cay's points. I also think it might be a good idea to tweak the spacing of the intro/tutorial text and left-align the paragraphs just so everything looks a bit more uniform.
You already made a note about some of these, but for the sake of completion I'll mention them again anyway. The few remaining things I noticed that are kinda weird/confusing/inconvenient but are ultimately still pretty minor:
Not sure how much control we really have over what order the screen reader reads things in, and the problems are generally pretty minor but I could still see unsighted users getting a little confused. Since we're already updating the aria-live region to read out the location of the cursor when it moves, maybe we could also figure out a way to bypass the usual 'read the letter' behavior and just add the last typed letter to the aria-live readout?
It might also be nice to indicate when a cell is part of another word since it will already have a value when users tab into it, but I could also see that being extraneous/confusing information for a person who can't see the layout anyway.
Updated the intro dialog layout slightly, added aria-hidden
to the <aside />
containing the tutorial image, and added a toolbar button to display the intro dialog.
The remaining items may fall under the "let it ride" category. I experimented with reading out the just-typed letter through the live region, but the screenreader opts to concatenate previously typed letters together, so it attempts to read out the word or phrase at it exists so far. I found the behavior moderately confusing, so I'm not entirely convinced it's better than the current behavior.
The screen reader tripping a bit over what order it reads things in when typing a letter into a slot is probably fine for now, if not ideal. The intro dialog looks better - the keyboard instructions dialog is fine but might also look a bit more put-together if it gets the same treatment as the intro window.
I'm also just now noticing that the player gets a little weird when the user tabs into a cell that is shared by two words.
In the demo, for example, tabbing through the letters of the 'Stonehenge' question will quickly land on a cell that is shared with the 'The White House' question - but instead of reading out 'Character position 2 of 10' followed by the text for the 'Stonehenge' question it reads out 'Character position 8 of 15' followed by the text for the 'The White House' question. I don't think this is a huge deal necessarily, but it could be confusing if a non-sighted user all of a sudden winds up in a different spot of a different question that they weren't expecting because they can't see the overlap.
Good catch. The aria-describedby
attribute in intersection character spaces will now update depending on the currently selected word/direction.
This is a rework of the Crossword player's accessibility implementation to be more in line with WCAG 2.0 requirements. It includes:
tab
andshift+tab
now cycle through character inputs in a word before leaving the board focus.left
andright
arrow keys will cycle through each word and its associated clue.down
arrow will select the hint and clue buttons for the clue associated with the highlighted word.up
arrow will perform this behavior in reverse, returning focus back to the selected letter. Tabbing through inputs in the clue list is also cross-compatible withup
/down
arrow key navigation.up
arrow when the board is focused and a character is selected. Like the shortcuts associated withdown
arrow,up
anddown
are used to paginate through special characters and return to the board.