Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /core-aam/aamtests/role/button.py - WPT Dashboard Interop Dashboard
import pytest
TEST_HTML = {
"no-attributes": "<div id=test role=button>click me</div>",
"aria-pressed-undefined": "<div id=test role=button aria-pressed>click me</div>",
"aria-haspopup-undefined": "<div id=test role=button aria-haspopup>click me</div>",
"aria-haspopup-false": "<div id=test role=button aria-haspopup=false>click me</div>",
}
@pytest.mark.parametrize("test_html", TEST_HTML.values(), ids=TEST_HTML.keys())
def test_atspi(atspi, session, inline, test_html):
session.url = inline(test_html)
# Spec:
# Role: ROLE_PUSH_BUTTON
node = atspi.find_node("test", session.url)
assert atspi.Accessible.get_role(node) == atspi.Role.PUSH_BUTTON
@pytest.mark.parametrize("test_html", TEST_HTML.values(), ids=TEST_HTML.keys())
def test_axapi(axapi, session, inline, test_html):
session.url = inline(test_html)
# Spec:
# AXRole: AXButton
# AXSubrole: <nil>
node = axapi.find_node("test", session.url)
err, role = axapi.AXUIElementCopyAttributeValue(node, "AXRole", None)
assert not err
assert role == "AXButton"
_, subrole = axapi.AXUIElementCopyAttributeValue(node, "AXSubrole", None)
assert subrole is None
# @pytest.mark.parametrize("test_html", TEST_HTML.values(), ids=TEST_HTML.keys())
# def test_ia2(ia2, session, inline):
# session.url = inline(test_html)
#
# # Spec:
# # Role: ROLE_SYSTEM_PUSHBUTTON
@pytest.mark.parametrize("test_html", TEST_HTML.values(), ids=TEST_HTML.keys())
def test_uia(uia, session, inline, test_html):
session.url = inline(test_html)
# Spec:
# Control Type: Button
node = uia.find_node("test", session.url)
assert node.CurrentControlType == uia.ControlType.Button