code.pyret.org
code.pyret.org copied to clipboard
A11y issues
Once we merge https://github.com/brownplt/code.pyret.org/pull/268, there are some issues Joe and I noticed white taking it for a test drive:
- [ ]
def//is still a problem when pressing up in the REPL: why does this appear in the history of REPL interactions? - [ ] styling (width) of run menu is still wrong
- [ ] Click on the Bonnie menu, then use the right arrow once. The File menu opens. Press right again, and the run menu does not open. Right again, to focus on the dropdown. Press space, and the menu flickers open and closed. Either the Run menu should open when the keyboard gets there, or the spacebar should work more reliably. (Might be worth checking out how the bootstrap css framework does split-buttons, and whether they're properly accessible or not.)
- [x] Pressing Tab in the REPL area (on a so-far blank entry) enters Tab characters, and it shouldn't.
- [ ] Vocalization doesn't pronounce whitespace, parens or brackets, which usually isn't a problem, except for nested function calls or with syntax errors. Not sure what to do here...
- [ ] The help screen (via Ctrl+?) is undiscoverable and never read.
- [ ] Announcements ("Saving...", "Program saved." etc) aren't read
- [ ] Getting from the definitions region to the interactions region doesn't announce the interactions area.
Re item no. 3, space causing the flicker is a bug. I should make space work the same as enter or click here. (Enter or click do work correctly, without flicker.)
However, the fact that the Run submenu doesn't immediately drop down when the keyboard gets to the down-arrow is intentional. I would've liked for the Run submenu to drop on focus just like it does for Bonnie and File. Maybe I'm mischaracterizing the guideline that @schanzer postulated, but apparently we want an extra hurdle before the user gets to see the Run dropdown: we want them to give it an extra prod (space or enter or click). I particularly set up the hurdle in the navigation and removing it is easy. Should I? What's the majority view?
Re item no. 4, what exactly is Tab is supposed to do in the REPL area? In WeScheme it does nothing. Should it not at least output one space?
I'd say it should do exactly what it does in definitions: run the indenter, which probably will do nothing at all. Pyret doesn't use tab to produce spaces in output...
-
Given that the REPL has rich values (lists, structs, test results), I can foresee some more complex interactions there in the future. That being said, I think we should be careful about using up any navigation keys -- and having Tab insert whitespace feels counterintuitive anyway. I say make it a no-op for now.
-
As for the run dropdown: it should behave the way Bonnie does. According to Sina, there's a UI convention for hierarchical menus in the a11y community that submenu visibility must be toggled by a user action. That suggests that Bonnie and the Run dropdown should both have that extra hurdle. I could be convinced otherwise, but only if the alternate proposal makes those menus consistent.
Thanks. Will do. BTW, the default action for Tab -- pending a future enhancement -- seems to be to just lay down the character Tab. Making it a no-op is "design".