Suggestions for some accessibility guidelines
Since I was asked about this in chat, I think it could be useful to keep some accessibility baseline points in some text file in the repo to watch out for, to which contributors could be pointed as a checklist. This might make the need for reverts less likely / make less problematic changes go in.
Here are a few points I would suggest (I just made these up, so these are just a suggestion):
-
Key size: for any layout change, compare the resulting key sizes to those of any default(!) Android keyboard. ("Hacker" keyboards, or any other specialized layouts for coders etc for cramping in more special keys don't count!) The osk-sdl keys should have the same minimum width and height as these, unless there is a very important reason to deviate. This is an easy trap: even just 10% shaved off along any axis, which may seem insignificant, can be a notable degradation in accessibility for some people. Possibly affected people includes anyone with lower typing precision due to worse eyesight, muscle conditions, unusually long nails, and so on.
-
Key positions: for any layout changes that swaps keys or adds or removes them from/to the panes, compare to purism's squeekboard's default layout and possibly a default Android or iOS keyboard. If possible, it is preferred to place the key in a space where it is also found in these so people don't need to go hunting for it. The more obscure a key is, the less important this guideline probably is. You might also want to use these comparisons as an opportunity to check that your change hasn't accidentally removed a key commonly found on other keyboards entirely.
-
Contrast: make sure the text to background contrast remains high enough with the default colors. Otherwise, in bright sun the login keyboard might not be readable enough for people to proceed, even if it looks more sleek given most other conditions.
-
Animation speed: any animation that takes time should be coded depending on time, not on rendering speed. Otherwise, users on slower phones might suffer undesirably long waiting times for these.
Those are the most important ones I can think of right now, which might be worth keeping around in a note. I guess other stuff is common sense, like using the available space rather than making the keyboard tiny for no reason, and not moving around the keyboard while the user is typing.
Feel free to change/omit/discuss/expand upon anything, these are just my spontaneous thoughts.
PS: btw, thinking about the contrast point it might be worth considering whether to invert osk-sdl's default colors to a bright scheme (black text on white bg). It is IMHO better to risk some eye strain in the dark with an overly bright login, compared to making login impossible out in the sun. I've definitely had some trouble there even in winter in regular daylight.