Chromium Code Reviews| Index: Source/modules/accessibility/AXObject.cpp |
| diff --git a/Source/modules/accessibility/AXObject.cpp b/Source/modules/accessibility/AXObject.cpp |
| index e05a796356d47388e2b9ba1dfd4e4a83316fcee2..7f717e438df06569d229a52e4b99ffcb1ce9f93e 100644 |
| --- a/Source/modules/accessibility/AXObject.cpp |
| +++ b/Source/modules/accessibility/AXObject.cpp |
| @@ -453,8 +453,22 @@ bool AXObject::isPasswordFieldAndShouldHideValue() const |
| return isPasswordField(); |
| } |
| +// If you call node->hasEditableStyle() since that will return true if an ancestor is editable. |
|
dmazzoni
2015/04/10 21:23:24
Please fix this sentence while you're at it, it do
|
| +// This only returns true if this is the element that actually has the contentEditable attribute set. |
| +bool AXObject::hasContentEditableAttributeSet() const |
| +{ |
| + if (!hasAttribute(contenteditableAttr)) |
| + return false; |
| + const AtomicString& contentEditableValue = getAttribute(contenteditableAttr); |
| + // Both "true" (case-insensitive) and the empty string count as true. |
| + return contentEditableValue.isEmpty() || equalIgnoringCase(contentEditableValue, "true"); |
| +} |
| + |
| bool AXObject::isTextControl() const |
| { |
| + if (hasContentEditableAttributeSet()) |
| + return true; |
| + |
| switch (roleValue()) { |
| case TextFieldRole: |
| case ComboBoxRole: |