This is in preparation for the next patch the virtualizes ChildAtPoint
in the Accessible class. LocalChildAtPoint allows us to house local-only
child at point implementations.
Differential Revision: https://phabricator.services.mozilla.com/D106679
This is a collaboration between clang-tidy and clang-format.
clang-tidy uses compiled code paths, so this patch is linux specific.
Differential Revision: https://phabricator.services.mozilla.com/D105669
The SELECTABLE_TEXT state is currently under-utilized and probably wrong, since it simply relies on testing if a hypertext has any text. A more correct reflection of the state should be taken from layout's IsSelectable method.
Note, even if an element is styled `user-select: none`, the text will still be keyboard selectable if it is editable (eg. input or contenteditable), so we should consider that SELECTABLE_TEXT.
Differential Revision: https://phabricator.services.mozilla.com/D95783
The SELECTABLE_TEXT state is currently under-utilized and probably wrong, since it simply relies on testing if a hypertext has any text. A more correct reflection of the state should be taken from layout's IsSelectable method.
Note, even if an element is styled `user-select: none`, the text will still be keyboard selectable if it is editable (eg. input or contenteditable), so we should consider that SELECTABLE_TEXT.
Differential Revision: https://phabricator.services.mozilla.com/D95783
The browser test is really a crash test, but it's really difficult to test a11y APIs properly using the crashtest framework.
Differential Revision: https://phabricator.services.mozilla.com/D95107
If an inline-block element contains nested elements that may contain line breaks, or whitespace that comes from how the HTML file is formatted, both start and end offsets returned from layout may be incorrect. Adjust for the following cases:
* The start offset goes too far back from the passed-in offset, overshooting a line boundary.
* The end offset returned is smaller than the passed-in offset, even though we want the start of the next line. Even on the last line, this should never happen.
Differential Revision: https://phabricator.services.mozilla.com/D94744
If the offset for an embedded character is queried, and it is an inline element, such as a link, and it contains a line break, return the full parent line.
Likewise, if querying character offsets before that embedded character, include its line break in the end offset.
Differential Revision: https://phabricator.services.mozilla.com/D94024
In pre-formatted text (including textareas), text leaf nodes can contain line break characters ("\n").
Therefore, when searching for a paragraph boundary, we must match these.
Pivot can't return an ofset, only an Accessible, so we store the offset for the last match on the rule.
Because our origin point might be within a text leaf which contains a line break before/after it, we must also pass in the offset in our origin in this case so we can begin the text search from the right place.
Differential Revision: https://phabricator.services.mozilla.com/D93719
This uses the Pivot class to search backwards and forwards from the current offsets until either end is reached, or an accessible that is either a line break or has a block frame, is found, and therefore constitutes a boundary of interest.
Differential Revision: https://phabricator.services.mozilla.com/D91407
This uses the Pivot class to search backwards and forwards from the current offsets until either end is reached, or an accessible that is either a line break or has a block frame, is found, and therefore constitutes a boundary of interest.
Differential Revision: https://phabricator.services.mozilla.com/D91407
If in a textarea, a blank line is inserted, we need to return the offsets of just that new inner paragraph, or the braille display of a screen reader will show the previous line and not a blank one.
Differential Revision: https://phabricator.services.mozilla.com/D90655
1. Make sure the paragraph text and start and end ofsets returned for offsets on either the text or its adjacent br always match.
2. For a single line break at the beginning of the enclosing paragraph, or two consecutive line breaks, treat the second one as its own paragraph without text, and its start offset corresponding to its offset, and end offset being 1 greater.
3. Add a test case exercising all cases.
Differential Revision: https://phabricator.services.mozilla.com/D90355
Tagging onto what we already do for getting line offsets, also doing the same when the paragraph selection is requested.
Differential Revision: https://phabricator.services.mozilla.com/D90238
For TextBeforeOffset and TextAfterOffset, bail out with an empty text and 0-initialized out integers if the boundary type is nsIAccessibleText::BOUNDARY_PARAGRAPH.
Differential Revision: https://phabricator.services.mozilla.com/D90115
1. Make sure the paragraph text and start and end ofsets returned for offsets on either the text or its adjacent br always match.
2. For two consecutive line breaks, treat the second one as its own paragraph without text, and its start offset corresponding to its offset, and end offset being 1 greater.
3. Add a test case exercising all cases.
Differential Revision: https://phabricator.services.mozilla.com/D90355
Tagging onto what we already do for getting line offsets, also doing the same when the paragraph selection is requested.
Differential Revision: https://phabricator.services.mozilla.com/D90238
For TextBeforeOffset and TextAfterOffset, bail out with an empty text and 0-initialized out integers if the boundary type is nsIAccessibleText::BOUNDARY_PARAGRAPH.
Differential Revision: https://phabricator.services.mozilla.com/D90115
This includes 3 changes:
1. Add a lazy ranges getter to AccTextSelChangeEvent.
2. Create an XPCOM interface for testing purposes.
3. Add IPDL bindings for passing ranges in e10s.
Differential Revision: https://phabricator.services.mozilla.com/D80556