[webkit-changes] [WebKit/WebKit] 5cd01f: AX: Wrong role displayed for input in Safari inspe...

Tyler Wilcock noreply at github.com
Mon Feb 27 00:49:23 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5cd01f201aba0badba296cecd95fd077c5e64819
      https://github.com/WebKit/WebKit/commit/5cd01f201aba0badba296cecd95fd077c5e64819
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-02-27 (Mon, 27 Feb 2023)

  Changed paths:
    M LayoutTests/accessibility/mac/active-descendant-with-aria-controls-expected.txt
    M LayoutTests/accessibility/mac/relationships-in-frames-expected.txt
    M LayoutTests/accessibility/roles-computedRoleString.html
    M LayoutTests/platform/glib/accessibility/aria-visible-element-roles-expected.txt
    M LayoutTests/platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt
    M LayoutTests/platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt
    M LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt
    M LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt
    M LayoutTests/platform/mac/accessibility/roles-computedRoleString-expected.txt
    M LayoutTests/platform/wpe/accessibility/aria-visible-element-roles-expected.txt
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h
    M Source/WebCore/accessibility/AccessibilityObject.cpp

  Log Message:
  -----------
  AX: Wrong role displayed for input in Safari inspector
https://bugs.webkit.org/show_bug.cgi?id=250124
rdar://problem/103907008

Reviewed by Chris Fleizach.

This bug occurred because gAriaReverseRoleMap had no mapping for AccessibilityRole::TextField,
meaning that when Web Inspector called AccessibilityObject::computedRoleString() for some types of
input elements we would return an empty string.

This necessitated some changes to AccessibilityNodeObject::determineAriaRoleAttribute() to avoid mapping
text inputs (which are inherently single-line) to the WebCore AccessibilityRole::TextArea role.

* LayoutTests/platform/mac/accessibility/roles-computedRoleString-expected.txt:
* LayoutTests/accessibility/mac/active-descendant-with-aria-controls-expected.txt:
* LayoutTests/accessibility/mac/relationships-in-frames-expected.txt:
The role="textbox" element in these tests has contenteditable, making it
a multi-line input. With this patch, we now properly compute it to have
a role of AXTextArea instead of AXTextField.

* LayoutTests/accessibility/roles-computedRoleString.html:
* LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt:
* LayoutTests/platform/glib/accessibility/aria-visible-element-roles-expected.txt:
* LayoutTests/platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt:
* LayoutTests/platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
* LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt:
* LayoutTests/platform/wpe/accessibility/aria-visible-element-roles-expected.txt:
Update expectations now that various input type elements map to a role.

* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::matchesTextAreaRole const): Added.
(WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
(WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const):
* Source/WebCore/accessibility/AccessibilityNodeObject.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
Map "textbox" role to AccessibilityRole::TextField to match other
browsers.

Canonical link: https://commits.webkit.org/260868@main




More information about the webkit-changes mailing list