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

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

Issue 887643003: Changed accessibility properies to meet W3C standard. Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Aplying rewiewer's sugestion. Created 5 years, 10 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 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 if (type == InputTypeNames::range) 235 if (type == InputTypeNames::range)
236 return SliderRole; 236 return SliderRole;
237 if (type == InputTypeNames::color) 237 if (type == InputTypeNames::color)
238 return ColorWellRole; 238 return ColorWellRole;
239 if (type == InputTypeNames::time) 239 if (type == InputTypeNames::time)
240 return TimeRole; 240 return TimeRole;
241 return TextFieldRole; 241 return TextFieldRole;
242 } 242 }
243 if (isHTMLSelectElement(*node())) { 243 if (isHTMLSelectElement(*node())) {
244 HTMLSelectElement& selectElement = toHTMLSelectElement(*node()); 244 HTMLSelectElement& selectElement = toHTMLSelectElement(*node());
245 return selectElement.multiple() ? ListBoxRole : PopUpButtonRole; 245 return (selectElement.multiple() || selectElement.size() > 1) ? ListBoxR ole : PopUpButtonRole;
246 } 246 }
247 if (isHTMLTextAreaElement(*node())) 247 if (isHTMLTextAreaElement(*node()))
248 return TextAreaRole; 248 return TextAreaRole;
249 if (headingLevel()) 249 if (headingLevel())
250 return HeadingRole; 250 return HeadingRole;
251 if (isHTMLDivElement(*node())) 251 if (isHTMLDivElement(*node()))
252 return DivRole; 252 return DivRole;
253 if (isHTMLMeterElement(*node())) 253 if (isHTMLMeterElement(*node()))
254 return MeterRole; 254 return MeterRole;
255 if (isHTMLOutputElement(*node())) 255 if (isHTMLOutputElement(*node()))
(...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after
1174 1174
1175 if (isHTMLSelectElement(*node)) { 1175 if (isHTMLSelectElement(*node)) {
1176 HTMLSelectElement& selectElement = toHTMLSelectElement(*node); 1176 HTMLSelectElement& selectElement = toHTMLSelectElement(*node);
1177 int selectedIndex = selectElement.selectedIndex(); 1177 int selectedIndex = selectElement.selectedIndex();
1178 const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& listItems = sel ectElement.listItems(); 1178 const WillBeHeapVector<RawPtrWillBeMember<HTMLElement>>& listItems = sel ectElement.listItems();
1179 if (selectedIndex >= 0 && static_cast<size_t>(selectedIndex) < listItems .size()) { 1179 if (selectedIndex >= 0 && static_cast<size_t>(selectedIndex) < listItems .size()) {
1180 const AtomicString& overriddenDescription = listItems[selectedIndex] ->fastGetAttribute(aria_labelAttr); 1180 const AtomicString& overriddenDescription = listItems[selectedIndex] ->fastGetAttribute(aria_labelAttr);
1181 if (!overriddenDescription.isNull()) 1181 if (!overriddenDescription.isNull())
1182 return overriddenDescription; 1182 return overriddenDescription;
1183 } 1183 }
1184 if (!selectElement.multiple()) 1184 return selectElement.value();
1185 return selectElement.value();
1186 return String();
1187 } 1185 }
1188 1186
1189 if (isTextControl()) 1187 if (isTextControl())
1190 return text(); 1188 return text();
1191 1189
1190 // Handle other HTML input elements that aren't text controls, like date and time
1191 // controls, by returning the string value, with the exception of checkboxes
1192 // and radio buttons (which would return "on").
1193 if (node && isHTMLInputElement(node)) {
1194 HTMLInputElement* input = toHTMLInputElement(node);
1195 if (input->type() != InputTypeNames::checkbox && input->type() != InputT ypeNames::radio)
1196 return input->value();
1197 }
1198
1192 // FIXME: We might need to implement a value here for more types 1199 // FIXME: We might need to implement a value here for more types
1193 // FIXME: It would be better not to advertise a value at all for the types f or which we don't implement one; 1200 // FIXME: It would be better not to advertise a value at all for the types f or which we don't implement one;
1194 // this would require subclassing or making accessibilityAttributeNames do s omething other than return a 1201 // this would require subclassing or making accessibilityAttributeNames do s omething other than return a
1195 // single static array. 1202 // single static array.
1196 return String(); 1203 return String();
1197 } 1204 }
1198 1205
1199 1206
1200 const AtomicString& AXNodeObject::textInputType() const 1207 const AtomicString& AXNodeObject::textInputType() const
1201 { 1208 {
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
1992 float range = maxValueForRange() - minValueForRange(); 1999 float range = maxValueForRange() - minValueForRange();
1993 float value = valueForRange(); 2000 float value = valueForRange();
1994 2001
1995 value += range * (percentChange / 100); 2002 value += range * (percentChange / 100);
1996 setValue(String::number(value)); 2003 setValue(String::number(value));
1997 2004
1998 axObjectCache()->postNotification(node(), AXObjectCacheImpl::AXValueChanged, true); 2005 axObjectCache()->postNotification(node(), AXObjectCacheImpl::AXValueChanged, true);
1999 } 2006 }
2000 2007
2001 } // namespace blink 2008 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698