Closed Bug 1387447 Opened 7 years ago Closed 7 years ago

Make accessibility test discern between ARIA elements and pointer-events: none elements

Categories

(Remote Protocol :: Marionette, enhancement)

Version 3
enhancement
Not set
normal

Tracking

(firefox57 fixed)

RESOLVED FIXED
mozilla57
Tracking Status
firefox57 --- fixed

People

(Reporter: ato, Assigned: ato)

References

Details

Attachments

(1 file)

The tests for the accessibility features in Marionette
needs to discern between ARIA elements and elements which
are styled with pointer-events: none, because this is
a relevant distinction when Marionette switches to the
WebDriver conforming element interactability implementation in
https://bugzilla.mozilla.org/show_bug.cgi?id=1321516.

With a WebDriver-conforming Element Click implementation, the
element click intercepted error is returned when an element with
pointer-events: "none" causes the click to hit the underlying
element.

However, because we’re not yet using
interaction.webdriverClickElement, we shouldn’t update the
expected errors.
Assignee: nobody → ato
Blocks: 1321516
Status: NEW → ASSIGNED
hg error in cmd: hg push -r . -f try: pushing to ssh://hg.mozilla.org/try
searching for changes
remote: replication log not available; all writes disabled
remote: pretxnopen.vcsreplicator hook failed
abort: push failed on remote
Comment on attachment 8893820 [details]
Bug 1387447 - Update accessibility pointer-events expectations.

https://reviewboard.mozilla.org/r/164932/#review170304

Looks good with the questions addressed. Thanks

::: testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py:88
(Diff revision 1)
>  
>      disabled_elementIDs = ["button11", "no_accessible_but_disabled"]
>  
> -    # Elements that are enabled but otherwise disabled or not explorable via the accessibility API
> +    # Elements that are enabled but otherwise disabled or not explorable
> +    # via the accessibility API
> +    aria_disabled_elements = ["button12"]

nit here and for the other list, can we change _elements to elementIDs to be consistent with the other lists.

::: testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py:96
(Diff revision 1)
> +    # ElementClickInterceptedException if clicked
> +    # when Marionette switches
> +    # to using WebDriver conforming interaction
> +    pointer_events_none_elements = ["button15", "button16"]
> +
>      disabled_accessibility_elementIDs = ["button12", "button15", "button16"]

Doesn't seem to be used any more, should we remove it?

::: testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py:184
(Diff revision 1)
>          # Buttons are enabled but disabled/not-explorable via the accessibility API
> -        self.run_element_test(self.disabled_accessibility_elementIDs,
> +        self.run_element_test(self.aria_disabled_elements,
> +                              lambda element: self.assertRaises(ElementNotAccessibleException,
> +                                                                element.is_enabled))
> +        self.run_element_test(self.pointer_events_none_elements,
>                                lambda element: self.assertRaises(ElementNotAccessibleException,

I'm guessing we still are getting ElementNotAccessibleException here instead of ElementClickInterceptedException?

::: testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py:194
(Diff revision 1)
> -        self.run_element_test(self.disabled_accessibility_elementIDs,
> +        # accessibility API.
> +        self.run_element_test(self.aria_disabled_elements,
> +                              lambda element: self.assertRaises(ElementNotAccessibleException,
> +                                                                element.click))
> +        self.run_element_test(self.pointer_events_none_elements,
>                                lambda element: self.assertRaises(ElementNotAccessibleException,

Wouldn't we need to check that ElementClickInterceptedException is raised instead of ElementNotAccessibleException?
Attachment #8893820 - Flags: review?(yzenevich) → review+
Comment on attachment 8893820 [details]
Bug 1387447 - Update accessibility pointer-events expectations.

https://reviewboard.mozilla.org/r/164932/#review170304

> nit here and for the other list, can we change _elements to elementIDs to be consistent with the other lists.

Sure thing!

> Doesn't seem to be used any more, should we remove it?

My bad, I forgot to take it out.

> I'm guessing we still are getting ElementNotAccessibleException here instead of ElementClickInterceptedException?

Yes.  We will keep getting ElementNotAccessibleException
until we switch over to use interaction.webdriverClickElement
rather than interaction.seleniumClickElement (both
defined in testing/marionette/interaction.js) in
https://bugzilla.mozilla.org/show_bug.cgi?id=1321516.

> Wouldn't we need to check that ElementClickInterceptedException is raised instead of ElementNotAccessibleException?

Per the last comment, these will continue to return
ElementClickInterceptedException until we switch over
to using WebDriver spec conforming interactability in
https://bugzilla.mozilla.org/show_bug.cgi?id=1321516.  This patch is
just to make the transition easier, by pointing out which elements
will get a different error.
Pushed by atolfsen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f4418ff1ef12
Update accessibility pointer-events expectations. r=yzen
https://hg.mozilla.org/mozilla-central/rev/f4418ff1ef12
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: