Closed Bug 1359482 Opened 8 years ago Closed 4 years ago

Don't expose editable state on grid or gridcell

Categories

(Core :: Disability Access APIs, defect, P3)

defect

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: aaronlev, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Currently an ARIA grid/treegrid is assumed to be editable unless otherwise specified. The editable state is then propagated to all gridcell descendants. ARIA 1.1 changes this behavior such that unless aria-readonly is specified on the containing grid/treegrid, this state should not be propagated to descendants. I spoke with Matt King about this -- it's a change that screen reader vendors asked for so that users would not hear "editable" over and over unless the author added this and really felt it significant for users to hear.
Note that grid/treegrid are defined in ARIAMap.cpp as being eARIAReadonlyOrEditable and should probably be changed to eARIAReadonlyOrEditableIfDefined.
(In reply to Aaron Leventhal from comment #0) > ARIA 1.1 changes this behavior such that unless aria-readonly is specified > on the containing grid/treegrid, this state should not be propagated to > descendants. It means that the state is propagated only for <grid aria-readonly='false'> and <grid aria-readonly='true'>, which is editalbe and readonly states accordingly, correct? (In reply to Aaron Leventhal from comment #1) > Note that grid/treegrid are defined in ARIAMap.cpp as being > eARIAReadonlyOrEditable and should probably be changed to > eARIAReadonlyOrEditableIfDefined. This will make the <grid> without aria-readonly also the editable state neutral, i.e. no editable state if there's no aria-readonly on a grid, which sounds different from states propagation to gridcells. Is it also the case?
This is something we should triage and fix but isn't among our most urgent bugs.(Contributions welcome as always!)
Priority: -- → P3

The concept of a grid being editable (i.e. not read-only) is very different to the concept supported by the Gecko and IA2 editable states. Gecko's EDITABLE state says:

The text in this object can be edited.

IA2_STATE_EDITABLE says:

An object with this state has a caret and implements the IAccessibleText interface.

  • Chrome never exposes this on grids nor gridcells, regardless of aria-readonly.
  • Core AAM doesn't specify exposing ATK STATE_EDITABLE for aria-readonly="false".
  • Gecko's behaviour causes problems for NVDA; see bug 1440509. This was partially hacked around in NVDA, but it still results in gridcells being reached with the "e" quick nav key, which is pretty nasty; e.g. in Facebook Messenger.

So, I think we should just drop the editable state altogether for grids and gridcells, matching Chrome. We should probably also file an issue against the spec to fix the mapping for aria-readonly="false", since it doesn't match reality in Chrome (and soon won't in Firefox) and isn't desirable for ATs.

Assignee: nobody → jteh
Severity: normal → S3
Type: enhancement → defect
Summary: Don't propagate editable from grid to gridcell descendants unless author specifies aria-readonly → Don't propagate editable from grid to gridcell descendants
Summary: Don't propagate editable from grid to gridcell descendants → Don't expose editable state on grid or gridcell
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/146209c7e5c2 Don't expose the editable state on ARIA grids and gridcells. r=eeejay
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: