Great info! Yes, we use DialogBox with modal=false, and setGlassEnabled; 
won't be able to convert our many dialogs over to using dialog element and 
Elemental for this product cycle (though maybe I'll sneak in a new dialog 
using those to infiltrate the code), but doing the hidden beginning/end 
elements is what I was thinking of doing, so thanks for confirming that's 
still the best I can do.

On Thursday, May 2, 2019 at 1:26:36 AM UTC-7, [email protected] wrote:
>
>
>
> On Wednesday, May 1, 2019 at 8:39:37 PM UTC+2, [email protected] wrote:
>>
>> Existing application using Gwt 2.8.2, and I'm undertaking effort to make 
>> it accessible (keyboard, screen reader, and so forth). Always a challenge 
>> to retrofit accessibility when it wasn't considered from the start, but 
>> that's my lot in life (cue violins).
>>
>> Problem of the day, modal DialogBoxes don't keep focus in the dialogs 
>> when using tab key. Several very old conversations on this, wondering if 
>> there's anything more current, or if it's still something I'll need to 
>> handle directly on a dialog-by-dialog basis. We have a lot of dialogs.
>>
>> Specifically, keyboard tabbing off final control should wrap around to 
>> beginning of dialog, NOT to the browser itself or the glassed-out UI of the 
>> application. Shift+Tabbing back from the first control should go to the 
>> last. Fundamental accessibility requirement. For example, try any modal 
>> dialog in Google Docs.
>>
>
> Modal popups in GWT have been broken for years (I asked that they be 
> deprecated 8 YEARS ago: https://github.com/gwtproject/gwt/issues/6454), 
> don't use them.
>
> I you really want/need a modal dialog, I'd suggest using a <dialog> 
> element with showModal(). The API is already available in Elemental: 
> https://static.javadoc.io/com.google.elemental2/elemental2-dom/1.0.0-RC1/elemental2/dom/HTMLDialogElement.html#showModal--
> And for browser compatibility (rather poor at the moment: 
> https://caniuse.com/#feat=dialog), use the polyfill: 
> https://github.com/GoogleChrome/dialog-polyfill (with GWT, you'd have to 
> inject the script –e.g. using ScriptInjector– then use JsInterop to call 
> the polyfill's registerDialog())
>
> Alternatively, use a non-modal GWT dialog and implement the "modal" 
> behavior "by hand": for tabbing, put hidden focusable elements at the 
> "beginning" and "end" of the dialog, catch the focus event on those and 
> then refocus to the appropriate element.
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to