<html><head></head><body>Please consider mandatory high contrast option with custom colors. I prefer black background and green foreground, it's a lie better for Mr eyes because clear colors really tire me. <br>
<br>
Text-To-Speech and braille devices should be very seriously very taken in consideration too, please. I know many people work degenerative vision issues that will eventually very totally blind, some of them are Linux enthusiasts. <br>
<br>
Let the the client side decide isn't a good option at all! Not homogeneous behavior and many lazy efforts would make accessibility broken very often. I've seen that lots of times! <br>
<br>
And please consider to involve developers having related disabilities:They would know how to implement an usable accessibility, because they use it all time and as users know what's right or wrong on many software. <br>
<br>
Thanks for all. <br><br><div class="gmail_quote">On March 10, 2016 7:43:13 PM CET, Matthias Clasen <matthias.clasen@gmail.com> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Hi,<br /><br />I would like to discuss strategies for implementing accessibility<br />features in Wayland that will be needed for a fully featured desktop.<br />There's a whole list of individual items, but for now I'd like to<br />focus on keyboard accessibility features, ie roughly the feature that<br />traditionally labeled AccessX:<br /><br />- slow keys (only accept key presses after a delay)<br />- sticky keys (support one-key-at-a-time operation by latching and<br />locking modifiers)<br />- bounce keys (reject quick key presses of the same key)<br />- toggle keys (special key bindings to enable the aforementioned<br />features: hold-shift-for-8-seconds for slow keys,<br />shift-5-times-in-a-row for sticky keys)<br /><br />The following two are not technically AccessX, but are close enough to<br />include them:<br />- key repeat<br />- visual bell (all of the AccessX features have configurable bells;<br />the visual bell can be configured to be per-window
or global)<br /><br />Under X, all of these features are implemented in the XKB code in the<br />server (the visual bell gets handled by a client that selects for for<br />XkbBellNotify. In GNOME, that is mutter).<br /><br />Wayland uses libxkbcommon to implement xkb-like keyboard handling, but<br />as far as I know, no Wayland compositor currently implements any of<br />the features I listed above. xwayland inherited the X server<br />implementation and thus, X clients do get AccessX features, but<br />Wayland clients don't. Not an ideal situation.<br /><br />In GNOME, we have a client-side implementation of key repeat, which<br />has some issues that we recently worked around by introducing an extra<br />roundtrip before synthesizing repeat presses. I recently spent an<br />evening trying to see how far I can get in implementing AccessX<br />client-side (see<br /><a
href="https://git.gnome.org/browse/gtk+/log/?h=matthiasc/wayland/slowkeys">https://git.gnome.org/browse/gtk+/log/?h=matthiasc/wayland/slowkeys</a>).<br />The results were mixed, I would say. While I have mostly working code<br />for all of the AccessX features, there are some limitations:<br /><br />- For 'true' slow keys, the modifier keys should be delayed as well.<br />My client-side implementation does not do that, since the modifier<br />processing happens compositor-side, and I can only delay the events<br />that already have modifiers applied.<br /><br />- I did not attempt to implement the visual bell client-side; flashing<br />the screen by mapping a fullscreen window temporarily would just be<br />too much of a hack. More recently, Jonas added a bell request to the<br />private gtk_shell interface between gtk+ and mutter, so we can now<br />reuse the existing (visual and audible) bell handling code in mutter.<br /><br />- Handling the toggle keys client-side means that you
can only enable<br />AccessX features if a client has focus; this needs to be handled in<br />the compositor so using one of these shortcuts can be the first thing<br />you do after stepping up to the computer, regardless if a client has<br />focus or not. We also loose a feature compared to the X session: under<br />X, we show a notification asking for confirmation ("Did you mean to<br />turn on SlowKeys?") when the toggle keys features are triggered from<br />the keyboard, to keep users from accidentally 'breaking' their<br />keyboard by resting their finger on the shift key. We can really send<br />notifications from deep inside a GDK backend.<br /><br />- Doing this client-side implementation in GTK+ does not help one bit<br />for SDL or Qt or E or toytoolkit clients.<br /><br />I know that one of the guiding principles of the Wayland architecure<br />is 'client-side', but I think the limitations listed<br />here are significant enough to argue for a compositor side<br
/>implementation of keyboard a11y. I don't think that this needs (a lot<br />of) new protocol, except for maybe a way to query and monitor state<br />related to these features.<br /><br />One small complication with implementing AccessX compositor-side is<br />that we have one client that currently does it client-side: xwayland.<br />It would need a patch to force-disable AccessX there. This is also why<br />I think there should be project-wide agreement on whether these<br />features belong in the compositor or not. It would be really<br />unfortunate and bad for interoperability if we end up in a future<br />where these features are implemented server-side in GNOME, but<br />client-side in KDE or the other way around.<br /><br />For the implementation itself, I guess it really belongs into<br />libxkbcommon, although that means it needs timers (or hooking up to a<br />mainloop). I find it intriguing that libxkbcommon/src/state.c has this<br />comment:<br /><br />/*<br /> * This is
a bastardised version of xkbActions.c from the X server which<br /> * does not support, for the moment:<br /> *   - AccessX sticky/debounce/etc (will come later)<br />...<br /><br />Daniel, do you still have plans in this area, or did 'later' turn out<br />to be 'never' ?<br />If not, any pointers for where somebody else would start digging into this ?<br /><br />Anyway, I'd like to hear people's thoughts about this topic.<br /><br /><br />Matthias<br /><hr /><br />wayland-devel mailing list<br />wayland-devel@lists.freedesktop.org<br /><a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel">https://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br /></pre></blockquote></div><br>
-- <br>
Enviado desde mi dispositivo Android con K-9 Mail. Por favor disculpa mi brevedad.</body></html>