Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#17595 closed defect (fixed)

toolbar keyboard navigation broken (IE9+)

Reported by: bill Owned by: Colin Snover
Priority: blocker Milestone: 1.7.6
Component: Editor Version: 1.9.1
Keywords: Cc:
Blocked By: Blocking:

Description

In test_Editor.html on IE10, click to focus an editor then shift-TAB to get to the toolbar, and try to use the left/right arrows to navigate.

This doesn't work in IE10, leading to the failures in the Editor_a11y.html test.

It works in IE10 when it's set to IE8 mode, or in the real IE8.

Change History (15)

comment:1 Changed 6 years ago by bill

I can fix IE9 and IE10 by reverting part of https://github.com/dojo/dijit/commit/7dca5a2e4eeaedc598d31d33a6eeaeba18f8571a, the code in _browserQueryCommandEnabled() that determines the object to call queryCommandEnabled() on:

var elem = has("ie") ? this.document.selection.createRange() : this.document;

IE9 and IE10 need to use this.document.selection.createRange() rather than this.document.

However in IE11, the only possibility seems to be calling this.document.queryCommandEnabled(). But that returns false for all commands as soon as the Editor is blurred.

comment:2 Changed 6 years ago by bill

Summary: toolbar keyboard navigation broken (IE10)toolbar keyboard navigation broken (IE9+)

comment:3 Changed 6 years ago by Colin Snover

There’s no way I can see to address this except to change the way the editor plugins work. Either we can stop using queryCommandEnabled for most/all of the button states, or we can stop calling onNormalizedDisplayChanged when the editor node is unfocused. None of the other common RTEs use queryCommandEnabled, apparently for good reason.

comment:4 Changed 6 years ago by Colin Snover

Owner: set to Colin Snover
Status: newassigned

comment:5 Changed 6 years ago by bill

I agree that there's not much reason to update toolbar button state when the editor is blurred, although not sure about the other stuff that onNormalizedDisplayChanged() does. Not calling onNormalizedDisplayChanged() on blur would likely break people that were expecting an editor onChange() event etc.

As for dropping the calls to queryCommandEnabled() completely and leaving the toolbar buttons always enabled all the time.. well that would definitely solve this problem, although it's a big change, including test file updates, and some people would classify it as a regression.

comment:6 Changed 6 years ago by Colin Snover

I have a potential patch which is ugly but basically makes it so that if someone switches focus from the editor to the toolbar the onNormalizedDisplayChanged method will not be called. Once the focus is removed from the editor entirely then onNormalizedDisplayChanged will be fired. I don’t think there is any alternative. The patch passes all the existing editor test suite but having spent my entire weekend with the test suite, that doesn’t seem to guarantee a whole lot. I will submit it as a pull request shortly.

comment:7 Changed 6 years ago by bill

#17612 is a duplicate of this ticket.

comment:8 Changed 6 years ago by Colin Snover

That PR I was talking about is at https://github.com/dojo/dijit/pull/16 now.

comment:9 Changed 6 years ago by Colin Snover

Milestone: tbd1.9.3
Priority: undecidedblocker

comment:10 Changed 5 years ago by Colin Snover <github.com@…>

Resolution: fixed
Status: assignedclosed

In 5a8211c02dd1c64db810fc25a0a6b8b4190deac7/dijit:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:11 Changed 5 years ago by Colin Snover <github.com@…>

In 79b52a3d82ecc4954c15aee56c93871105ec5f17/dijit:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:12 Changed 5 years ago by Colin Snover <github.com@…>

In 2b37eebc7284cb83bf7e35e1225a95b1a8d90d46/dijit:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:13 Changed 5 years ago by bill

Milestone: 1.9.31.8.6

comment:14 Changed 5 years ago by Bill Keese <bill@…>

In c2c378575f19787dfc2d75d963266c55208a26d3/dijit:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:15 Changed 5 years ago by bill

Milestone: 1.8.61.7.6
Note: See TracTickets for help on using tickets.