Commit Graph
73 Commits
Author SHA1 Message Date
Morgan Rae Reschenberg 3c047cfc64 Bug 1895408: Add support for exposing critical, supoptimal, optimal meter values via AXValueDescription r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D209615
2024-05-21 22:11:05 +00:00
Nathan LaPre 81fc05ec23 Bug 1878358: Fix accessible name calculation for text field inputs, r=Jamie
Per the HTML-AAM spec, section 4.1.1, certain text field inputs have a specific
accessible name calculation. That computation specifies that the client should
first check the control's title attribute before checking the control's
placeholder value. This revision adjusts the code such that we check the title
first, then the placeholder; we were previously doing the reverse. This revision
also removes the expected failures from the relevant web platform test meta
file.

Differential Revision: https://phabricator.services.mozilla.com/D201877
2024-02-14 23:24:04 +00:00
James Teh f60bbbed62 Bug 1661923: Expose file input as a button in the a11y tree rather than a group. r=eeejay
A file input contains two native anonymous children: the Browse button and the file name label.
Previously, we exposed the file input as a group in the a11y tree and its anonymous children as children of that group.
While this is semantically correct, it causes several problems for screen readers.
First, if the author provides a label or description, that gets exposed on the group.
Some screen readers ignore either one or the other depending on the screen reader, what the author specified and how the user navigated there.
Second, the file name label isn't focusable and wasn't associated to the group in any way aside from being a child.
This meant that a screen reader user might not perceive it in some cases.

Since most users understand a file input as a single control anyway, we now just expose the input as a simple button containing two text leaves.
However, unlike most buttons, we need to append the text to the name even if the author specifies a name.
As a bonus, this simplifies some code, since we no longer need to redirect focus or events.

An additional problem was that the file input previously returned false for LocalAccessible::IsWidget, which meant that a wrapping HTML label wasn't associated correctly.
This has been fixed as well, although this fix could have applied just as easily to the previous group implementation.

Differential Revision: https://phabricator.services.mozilla.com/D191264
2023-10-23 23:38:13 +00:00
James Teh a34c364ee8 Bug 1845883: Remove HyperTextAccessibleWrap. r=nlapre
This is now just an alias for HyperTextAccessible on all platforms.
This was done with the following bash script:

```
cd accessible
find -name HyperTextAccessibleWrap.h -delete
sed -i 's/#include "HyperTextAccessibleWrap.h"/#include "HyperTextAccessible.h"/;/"HyperTextAccessibleWrap.h",/d;s/HyperTextAccessibleWrap/HyperTextAccessible/g' `git grep -l HyperTextAccessibleWrap`
```

Differential Revision: https://phabricator.services.mozilla.com/D184796
2023-08-02 01:42:17 +00:00
James Teh 877e002509 Bug 1845863: Expose HTML placeholder for RemoteAccessible. r=nlapre
We previously cached aria-placeholder, but not HTML placeholder.
These both map to the placeholder object attribute exposed by Accessible::Attributes, but they are retrieved differently internally.

This also fixes LocalAccessible::Attributes to always prefer HTML placeholder over aria-placeholder as per the ARIA spec.
Previously, the attribute we preferred was somewhat indeterminate (from the user's perspective) due to the ordering of hash maps.

Differential Revision: https://phabricator.services.mozilla.com/D184795
2023-08-02 01:42:17 +00:00
Morgan Rae Reschenberg 2c295ff3d7 Bug 1787284: [Part 2] Cache name and create radio name pivot rule r=eeejay
Depends on D158892

Differential Revision: https://phabricator.services.mozilla.com/D159118
2022-10-27 20:32:18 +00:00
Csoregi Natalia 8d40d9cb38 Backed out 4 changesets (bug 1787284) for causing failures on browser_caching_relations.js. CLOSED TREE
Backed out changeset fe4a5fa0fa27 (bug 1787284)
Backed out changeset 54e0b1365f89 (bug 1787284)
Backed out changeset c6db418af190 (bug 1787284)
Backed out changeset fda6706bb580 (bug 1787284)
2022-10-21 02:43:42 +03:00
Morgan Rae Reschenberg f22bcf535c Bug 1787284: [Part 2] Cache name and create radio name pivot rule r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D159118
2022-10-20 21:40:06 +00:00
Eitan Isaacson c59f95454a Bug 1755817 - Move LandmarkRole to Accessible. r=Jamie
Current mochitests should prove the soundness of this. The only thing
preventing this from becoming a non-virtual method is the reliance
on TagName which is only available when cached is enabled. When it
is disabled we need to fallback on the sync IPDL call.

Differential Revision: https://phabricator.services.mozilla.com/D138964
2022-02-18 18:21:01 +00:00
Eitan Isaacson 922ff4f2f2 Bug 1752380 - P1: Introduce HasPrimaryAction and remove redundant DoAction/ActionCount implementation. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D137200
2022-02-15 23:20:11 +00:00
Eitan Isaacson 92ef39a33c Bug 1747835 - P2: Cache text-input-type attribute for text and date/time inputs. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D134759
2022-01-05 22:30:53 +00:00
Eitan Isaacson c9c01d2dfa Bug 1747835 - P1: Add eHTMLDateTimeFieldType AccType and IsDateTimeField checker. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D134758
2022-01-05 22:30:52 +00:00
Eitan Isaacson ddf9b30300 Bug 1747164 - Make HTMLDateTimeAccessible inherit from HyperTextAccessibleWrap. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D134757
2022-01-05 22:30:52 +00:00
Eitan Isaacson 0bdd3bff94 Bug 1737944 - P7: Move and rename GetPositionAndSizeInternal to Accessible. r=Jamie
Now that the AccGroupInfo getter is in Accessible, the position and size
getter could go there too.

Differential Revision: https://phabricator.services.mozilla.com/D134210
2022-01-04 21:01:37 +00:00
Eitan Isaacson b90747ce4d Bug 1733248 - Fire state change events for autocomplete changes. r=morgan
Trickier than just listening for attributes on inputs since a form
can toggle autocomplete too.

Also fixed To32States to work on the 32nd bit.

Differential Revision: https://phabricator.services.mozilla.com/D128913
2021-10-21 22:47:43 +00:00
Eitan Isaacson bfe3c460d8 Bug 1736115 - Remove HTMLTextFieldAccessible::BindingOrWidgetParent. r=Jamie
Also fix search-textbox's use of aria-autocomplete and a test.

Differential Revision: https://phabricator.services.mozilla.com/D128655
2021-10-21 22:47:43 +00:00
Eitan Isaacson 752a644cab Bug 1733223 - Fire READONLY state change when input gets readonly attribute. r=morgan
This patch also adds tests for other READONLY/EDITABLE state changes
that already work.

Differential Revision: https://phabricator.services.mozilla.com/D127165
2021-10-04 16:47:34 +00:00
Eitan Isaacson 73d290259d Bug 1731374 - Add string storage to AccAttributes with move semantics. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D126012
2021-09-28 22:01:35 +00:00
Eitan Isaacson ad7a8c8b91 Bug 1723614 - P2: Robustify name change events and use events in name tests. r=Jamie
Changed the browser and mochitest name tests to rely exclusively on name change
events. To make this happen, I fixed all the cases where we were
event-deficient in the code:

* Examine target in PushNameOrDescriptionChange if it has eNameFromSubtreeRule.
  Fixes cases where a text change event happens with the subtree name root as target.
* Change in aria-labelledby should always result in a name change event because
  that attribute has highest prescedence.
* Add eHasNameDependent/eHasDescriptionDependent context flags when dependee accessible
  is added after dependent accessible to tree.
* Handle value attribute change in HTML buttons and determine if they should trigger a
  name changed event.
* Use accessible tree instead of content tree when calculating HTMLSelectOptionAccessible
  name, this keeps the PushNameOrDescriptionChange sees in name flags consistent with
  the actual tree.
* Handle label attribute change in select options and determine if they should trigger
  a name changed event.
* Determine if s summary attribute change on a table triggers a name change event.
* If a title attribute is changed, reliably fire a name change event if
  it is used in name calculation.

Differential Revision: https://phabricator.services.mozilla.com/D121580
2021-08-05 23:04:17 +00:00
Eitan Isaacson ae255ff154 Bug 1723614 - P1: Override DOMAttributeChanged where it makes sense. r=Jamie
Added a MIXED state change event when progress goes from determinate to
undeterminate.

Differential Revision: https://phabricator.services.mozilla.com/D121579
2021-08-05 23:04:17 +00:00
Eitan Isaacson 1d61cedf0e Bug 1714390 - P2: Use AccAttributes for accessible and text attributes. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D116783
2021-06-10 23:07:05 +00:00
Masayuki Nakano 627e7c3853 Bug 1713758 - Make everyone outside editor module use EditorBase instead of TextEditor if the instance can be an HTMLEditor instance r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D117119
2021-06-09 23:51:37 +00:00
Eitan Isaacson 67c5f7556c Bug 1694203 - P2: Add eNumericValue and eAction to generic types for use in proxy. r=Jamie
eHasNumericValue should probably not be a state anyway. We need both of
these types because we currently send eHasNumericValue and
ActionCount != 0 as interface flags when creating proxies.

Differential Revision: https://phabricator.services.mozilla.com/D104914
2021-03-02 16:32:21 +00:00
Eitan Isaacson c1ef28b8c2 Bug 1693597 - P1: Rename Accessible to LocalAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D105670
2021-02-19 23:14:32 +00:00
Morgan Reschenberg 7ab7fa2a39 Bug 1460378: Introduce meter role and HTMLMeterAccessible class. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D104759
2021-02-17 15:58:31 +00:00
Andi-Bogdan Postelnicu b6ead28014 Bug 1683561 - Make accessibility buildable outside of unified-build environment. r=sg
Differential Revision: https://phabricator.services.mozilla.com/D100212
2021-01-05 09:47:12 +00:00
Emilio Cobos Álvarez f631db2019 Bug 1682988 - Use UTF8String for querySelector and similar OM methods. r=heycam
This has no observable behavior change because we were converting to
UTF-8 in ParseSelectorList.

Differential Revision: https://phabricator.services.mozilla.com/D99961
2020-12-23 05:42:00 +00:00
Simon Giesecke a69d79b6db Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Morgan Reschenberg 8ccd1a49b8 Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-29 17:37:46 +00:00
Narcis Beleuzu 081897162d Backed out changeset d2b10235d8ac (bug 1624909) for bustages on Pivot.h . CLOSED TREE 2020-05-29 07:05:21 +03:00
Morgan Reschenberg 54fbc9d10e Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-28 15:53:01 +00:00
Razvan Maries 55681e80e9 Backed out changeset 156d42f01488 (bug 1624909) for build bustages on Pivot.h. CLOSED TREE 2020-05-27 22:49:22 +03:00
Morgan Reschenberg 9733fecbe7 Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-27 19:23:32 +00:00
Razvan Maries 9a579f4c2c Backed out changeset b4c58d9afd4b (bug 1624909) for build bustages on Pivot.h. CLOSED TREE 2020-05-27 21:04:58 +03:00
Morgan Reschenberg d958559437 Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-27 17:51:30 +00:00
Bogdan Tara f796f2f60d Backed out changeset d9a39c63e40e (bug 1624909) for Pivot.h related bustages CLOSED TREE 2020-05-22 02:58:12 +03:00
Morgan Reschenberg 0bd563b252 Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-21 23:36:13 +00:00
James Teh 8aaf3f0d65 Bug 1629078 part 2: Make date/time inputs labellable by an ancestor HTML label and expose text-input-type attribute. r=MarcoZ
In order for a form control to be labelled by an ancestor HTML label, its Accessible must return true for isWidget().
Also, HTML AAM says the text-input-type attribute should be exposed.

Differential Revision: https://phabricator.services.mozilla.com/D72080
2020-04-23 04:48:53 +00:00
Emilio Cobos Álvarez 0534b20fd6 Bug 981248 - Rewrite <input type=number> to avoid an anonymous input. r=masayuki,surkov,jwatt,ntim,jfkthame,smaug
Instead, subclass nsTextControlFrame. This simplifies the code and avoids
correctness issues.

I kept the localization functionality though it is not spec compliant. But I
filed a bug to remove it in a followup.

Differential Revision: https://phabricator.services.mozilla.com/D57193
2020-01-14 19:01:05 +00:00
Mihai Alexandru Michis b51ee7e327 Backed out 2 changesets (bug 981248) for causing multiple failures.
CLOSED TREE

Backed out changeset 7a96708cc8b7 (bug 981248)
Backed out changeset 1eace7bd28d9 (bug 981248)
2020-01-14 19:28:17 +02:00
Emilio Cobos Álvarez c442c1b9ab Bug 981248 - Rewrite <input type=number> to avoid an anonymous input. r=masayuki,surkov,jwatt,ntim,jfkthame,smaug
Instead, subclass nsTextControlFrame. This simplifies the code and avoids
correctness issues.

I kept the localization functionality though it is not spec compliant. But I
filed a bug to remove it in a followup.

Differential Revision: https://phabricator.services.mozilla.com/D57193
2020-01-14 15:05:22 +00:00
Masayuki Nakano 16fa2f8998 Bug 1597679 - part 2: Make nsITextControlElement inherit nsGenericHTMLFormElementWithState r=smaug
Sub classes of `nsITextControlElement` are only `HTMLInputElement` and
`HTMLTextAreaElement`. And both base class is
`nsGenericHTMLFormElementWithState`.  Therefore, we can make
`nsITextControlElement` inherit `nsGenericHTMLFormElementWithState` and
make `HTMLInputElement` and `HTMLTextAreaElement` inherit
`nsITextControlElement`.  Then, we can get rid of a lot of QI between
`nsINode`/`nsIContent`/`Element` and `nsITextControlElement` (and note that
some of them in a hot path).

Additionally, this patch renames `nsITextControlElement` to
`mozilla::TextControlElement`.

Differential Revision: https://phabricator.services.mozilla.com/D54330
2019-11-25 06:35:15 +00:00
Coroiu Cristina 46945eade0 Backed out 3 changesets (bug 1597679) for Android debug build bustage at build/src/dom/base/nsContentAreaDragDrop.cpp
Backed out changeset 6a73b58e0db4 (bug 1597679)
Backed out changeset 90a172eff2de (bug 1597679)
Backed out changeset d4a156cf28ff (bug 1597679)
2019-11-24 09:02:53 +02:00
Masayuki Nakano 018bf53100 Bug 1597679 - part 2: Make nsITextControlElement inherit nsGenericHTMLFormElementWithState r=smaug
Sub classes of `nsITextControlElement` are only `HTMLInputElement` and
`HTMLTextAreaElement`. And both base class is
`nsGenericHTMLFormElementWithState`.  Therefore, we can make
`nsITextControlElement` inherit `nsGenericHTMLFormElementWithState` and
make `HTMLInputElement` and `HTMLTextAreaElement` inherit
`nsITextControlElement`.  Then, we can get rid of a lot of QI between
`nsINode`/`nsIContent`/`Element` and `nsITextControlElement` (and note that
some of them in a hot path).

Additionally, this patch renames `nsITextControlElement` to
`mozilla::TextControlElement`.

Differential Revision: https://phabricator.services.mozilla.com/D54330
2019-11-24 05:38:02 +00:00
Emilio Cobos Álvarez fc8ae881ad Bug 1596768 - Remove GetBindingParent() in HTMLFormControlAccessible. r=surkov
This code doesn't want to deal with Shadow DOM but with <input type=number> and
such native-anonymous inputs. So do that explicitly.

Differential Revision: https://phabricator.services.mozilla.com/D53204
2019-11-16 10:15:26 +00:00
Tim Nguyen d723f714bc Bug 1596193 - Replace outdated references to XUL textbox. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D53177
2019-11-15 13:35:14 +00:00
Tim Nguyen e332e69eab Bug 1581956 - Make search-textbox not use the <textbox> tag. r=surkov,MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D46219
2019-09-25 19:12:48 +00:00
James Teh 3ed6df861b Bug 1582323: When a file input has DOM focus, focus the browse button inside it for a11y. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D46386
2019-09-19 04:34:29 +00:00
Sylvestre Ledru 69746836db Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883
2019-05-25 17:46:15 +00:00
arthur.iakab 699b884244 Backed out changeset a296439a25ff (bug 1519636) for frequent Windows cppunit failures CLOSED TREE 2019-05-24 14:26:01 +03:00