Index: content/browser/accessibility/browser_accessibility.cc |
diff --git a/content/browser/accessibility/browser_accessibility.cc b/content/browser/accessibility/browser_accessibility.cc |
index 19e4b4b4c94e2945e68a4b2d77bd3e94ab25b8c3..b381e4c4fba48204a90d1195f2d9d9d5d25224a2 100644 |
--- a/content/browser/accessibility/browser_accessibility.cc |
+++ b/content/browser/accessibility/browser_accessibility.cc |
@@ -717,6 +717,28 @@ bool BrowserAccessibility::IsControl() const { |
} |
} |
+// Some controls (native or ARIA-based) expose a visible value which is |
+// separate from their name or label. |
+// Examples include combo boxes and text fields, but don't include buttons. |
+bool BrowserAccessibility::IsControlWithVisibleValue() const { |
+ switch (GetRole()) { |
+ case ui::AX_ROLE_COLOR_WELL: |
+ case ui::AX_ROLE_COMBO_BOX: |
+ case ui::AX_ROLE_DATE: |
+ case ui::AX_ROLE_DATE_TIME: |
+ case ui::AX_ROLE_INPUT_TIME: |
+ case ui::AX_ROLE_LIST_BOX: |
+ case ui::AX_ROLE_SCROLL_BAR: |
+ case ui::AX_ROLE_SEARCH_BOX: |
+ case ui::AX_ROLE_SLIDER: |
+ case ui::AX_ROLE_SPIN_BUTTON: |
+ case ui::AX_ROLE_TEXT_FIELD: |
+ return true; |
+ default: |
+ return false; |
+ } |
+} |
+ |
int BrowserAccessibility::GetStaticTextLenRecursive() const { |
if (GetRole() == ui::AX_ROLE_STATIC_TEXT || |
GetRole() == ui::AX_ROLE_LINE_BREAK) { |