Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1190)

Side by Side Diff: Source/modules/accessibility/AXNodeObject.cpp

Issue 1045693002: Expose multiline attribute from blink (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Reland Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012, Google Inc. All rights reserved. 2 * Copyright (C) 2012, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 return ColorWellRole; 326 return ColorWellRole;
327 if (type == InputTypeNames::time) 327 if (type == InputTypeNames::time)
328 return TimeRole; 328 return TimeRole;
329 return TextFieldRole; 329 return TextFieldRole;
330 } 330 }
331 if (isHTMLSelectElement(*node())) { 331 if (isHTMLSelectElement(*node())) {
332 HTMLSelectElement& selectElement = toHTMLSelectElement(*node()); 332 HTMLSelectElement& selectElement = toHTMLSelectElement(*node());
333 return selectElement.multiple() ? ListBoxRole : PopUpButtonRole; 333 return selectElement.multiple() ? ListBoxRole : PopUpButtonRole;
334 } 334 }
335 if (isHTMLTextAreaElement(*node())) 335 if (isHTMLTextAreaElement(*node()))
336 return TextAreaRole; 336 return TextFieldRole;
337 if (headingLevel()) 337 if (headingLevel())
338 return HeadingRole; 338 return HeadingRole;
339 if (isHTMLDivElement(*node())) 339 if (isHTMLDivElement(*node()))
340 return DivRole; 340 return DivRole;
341 if (isHTMLMeterElement(*node())) 341 if (isHTMLMeterElement(*node()))
342 return MeterRole; 342 return MeterRole;
343 if (isHTMLOutputElement(*node())) 343 if (isHTMLOutputElement(*node()))
344 return StatusRole; 344 return StatusRole;
345 if (isHTMLParagraphElement(*node())) 345 if (isHTMLParagraphElement(*node()))
346 return ParagraphRole; 346 return ParagraphRole;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 393
394 AccessibilityRole role = ariaRoleToWebCoreRole(ariaRole); 394 AccessibilityRole role = ariaRoleToWebCoreRole(ariaRole);
395 395
396 // ARIA states if an item can get focus, it should not be presentational. 396 // ARIA states if an item can get focus, it should not be presentational.
397 if ((role == NoneRole || role == PresentationalRole) && canSetFocusAttribute ()) 397 if ((role == NoneRole || role == PresentationalRole) && canSetFocusAttribute ())
398 return UnknownRole; 398 return UnknownRole;
399 399
400 if (role == ButtonRole) 400 if (role == ButtonRole)
401 role = buttonRoleType(); 401 role = buttonRoleType();
402 402
403 if (role == TextAreaRole && !ariaIsMultiline())
404 role = TextFieldRole;
405
406 role = remapAriaRoleDueToParent(role); 403 role = remapAriaRoleDueToParent(role);
407 404
408 if (role) 405 if (role)
409 return role; 406 return role;
410 407
411 return UnknownRole; 408 return UnknownRole;
412 } 409 }
413 410
414 void AXNodeObject::elementsFromAttribute(WillBeHeapVector<RawPtrWillBeMember<Ele ment>>& elements, const QualifiedName& attribute) const 411 void AXNodeObject::elementsFromAttribute(WillBeHeapVector<RawPtrWillBeMember<Ele ment>>& elements, const QualifiedName& attribute) const
415 { 412 {
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 return false; 747 return false;
751 } 748 }
752 749
753 bool AXNodeObject::isPasswordField() const 750 bool AXNodeObject::isPasswordField() const
754 { 751 {
755 Node* node = this->node(); 752 Node* node = this->node();
756 if (!isHTMLInputElement(node)) 753 if (!isHTMLInputElement(node))
757 return false; 754 return false;
758 755
759 AccessibilityRole ariaRole = ariaRoleAttribute(); 756 AccessibilityRole ariaRole = ariaRoleAttribute();
760 if (ariaRole != TextFieldRole && ariaRole != TextAreaRole && ariaRole != Unk nownRole) 757 if (ariaRole != TextFieldRole && ariaRole != UnknownRole)
761 return false; 758 return false;
762 759
763 return toHTMLInputElement(node)->type() == InputTypeNames::password; 760 return toHTMLInputElement(node)->type() == InputTypeNames::password;
764 } 761 }
765 762
766 bool AXNodeObject::isProgressIndicator() const 763 bool AXNodeObject::isProgressIndicator() const
767 { 764 {
768 return roleValue() == ProgressIndicatorRole; 765 return roleValue() == ProgressIndicatorRole;
769 } 766 }
770 767
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 level++; 1037 level++;
1041 else if (parentRole == TreeRole) 1038 else if (parentRole == TreeRole)
1042 break; 1039 break;
1043 } 1040 }
1044 1041
1045 return level; 1042 return level;
1046 } 1043 }
1047 1044
1048 String AXNodeObject::ariaAutoComplete() const 1045 String AXNodeObject::ariaAutoComplete() const
1049 { 1046 {
1050 if (roleValue() != ComboBoxRole && roleValue() != TextAreaRole) 1047 if (roleValue() != ComboBoxRole)
1051 return String(); 1048 return String();
1052 1049
1053 const AtomicString& ariaAutoComplete = getAttribute(aria_autocompleteAttr).l ower(); 1050 const AtomicString& ariaAutoComplete = getAttribute(aria_autocompleteAttr).l ower();
1054 1051
1055 if (ariaAutoComplete == "inline" || ariaAutoComplete == "list" 1052 if (ariaAutoComplete == "inline" || ariaAutoComplete == "list"
1056 || ariaAutoComplete == "both") 1053 || ariaAutoComplete == "both")
1057 return ariaAutoComplete; 1054 return ariaAutoComplete;
1058 1055
1059 return String(); 1056 return String();
1060 } 1057 }
(...skipping 1024 matching lines...) Expand 10 before | Expand all | Expand 10 after
2085 float range = maxValueForRange() - minValueForRange(); 2082 float range = maxValueForRange() - minValueForRange();
2086 float value = valueForRange(); 2083 float value = valueForRange();
2087 2084
2088 value += range * (percentChange / 100); 2085 value += range * (percentChange / 100);
2089 setValue(String::number(value)); 2086 setValue(String::number(value));
2090 2087
2091 axObjectCache()->postNotification(node(), AXObjectCacheImpl::AXValueChanged) ; 2088 axObjectCache()->postNotification(node(), AXObjectCacheImpl::AXValueChanged) ;
2092 } 2089 }
2093 2090
2094 } // namespace blink 2091 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/accessibility/AXLayoutObject.cpp ('k') | Source/modules/accessibility/AXObject.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698