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

Side by Side Diff: content/renderer/accessibility/blink_ax_tree_source.cc

Issue 790003003: Exposed the invalid state of form controls to the accessibility APIs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tried fixing Android unit tests. Created 5 years, 11 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/accessibility/blink_ax_tree_source.h" 5 #include "content/renderer/accessibility/blink_ax_tree_source.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 } 229 }
230 230
231 if (dst->role == ui::AX_ROLE_COLOR_WELL) { 231 if (dst->role == ui::AX_ROLE_COLOR_WELL) {
232 int r, g, b; 232 int r, g, b;
233 src.colorValue(r, g, b); 233 src.colorValue(r, g, b);
234 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_RED, r); 234 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_RED, r);
235 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_GREEN, g); 235 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_GREEN, g);
236 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_BLUE, b); 236 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_BLUE, b);
237 } 237 }
238 238
239 if (src.invalidState()) {
240 dst->AddIntAttribute(ui::AX_ATTR_INVALID_STATE,
241 AXInvalidStateFromBlink(src.invalidState()));
242 }
243 if (src.invalidState() == blink::WebAXInvalidStateOther) {
244 dst->AddStringAttribute(ui::AX_ATTR_ARIA_INVALID_VALUE,
245 UTF16ToUTF8(src.ariaInvalidValue()));
246 }
247
239 if (dst->role == ui::AX_ROLE_INLINE_TEXT_BOX) { 248 if (dst->role == ui::AX_ROLE_INLINE_TEXT_BOX) {
240 dst->AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION, 249 dst->AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
241 AXTextDirectionFromBlink(src.textDirection())); 250 AXTextDirectionFromBlink(src.textDirection()));
242 251
243 WebVector<int> src_character_offsets; 252 WebVector<int> src_character_offsets;
244 src.characterOffsets(src_character_offsets); 253 src.characterOffsets(src_character_offsets);
245 std::vector<int32> character_offsets; 254 std::vector<int32> character_offsets;
246 character_offsets.reserve(src_character_offsets.size()); 255 character_offsets.reserve(src_character_offsets.size());
247 for (size_t i = 0; i < src_character_offsets.size(); ++i) 256 for (size_t i = 0; i < src_character_offsets.size(); ++i)
248 character_offsets.push_back(src_character_offsets[i]); 257 character_offsets.push_back(src_character_offsets[i]);
(...skipping 11 matching lines...) Expand all
260 word_ends.push_back(src_word_ends[i]); 269 word_ends.push_back(src_word_ends[i]);
261 } 270 }
262 dst->AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, word_starts); 271 dst->AddIntListAttribute(ui::AX_ATTR_WORD_STARTS, word_starts);
263 dst->AddIntListAttribute(ui::AX_ATTR_WORD_ENDS, word_ends); 272 dst->AddIntListAttribute(ui::AX_ATTR_WORD_ENDS, word_ends);
264 } 273 }
265 274
266 if (src.accessKey().length()) { 275 if (src.accessKey().length()) {
267 dst->AddStringAttribute(ui::AX_ATTR_ACCESS_KEY, 276 dst->AddStringAttribute(ui::AX_ATTR_ACCESS_KEY,
268 UTF16ToUTF8(src.accessKey())); 277 UTF16ToUTF8(src.accessKey()));
269 } 278 }
279
270 if (src.actionVerb().length()) 280 if (src.actionVerb().length())
271 dst->AddStringAttribute(ui::AX_ATTR_ACTION, UTF16ToUTF8(src.actionVerb())); 281 dst->AddStringAttribute(ui::AX_ATTR_ACTION, UTF16ToUTF8(src.actionVerb()));
272 if (src.ariaAutoComplete().length()) 282 if (src.ariaAutoComplete().length())
273 dst->AddStringAttribute(ui::AX_ATTR_AUTO_COMPLETE, 283 dst->AddStringAttribute(ui::AX_ATTR_AUTO_COMPLETE,
274 UTF16ToUTF8(src.ariaAutoComplete())); 284 UTF16ToUTF8(src.ariaAutoComplete()));
275 if (src.isAriaReadOnly()) 285 if (src.isAriaReadOnly())
276 dst->AddBoolAttribute(ui::AX_ATTR_ARIA_READONLY, true); 286 dst->AddBoolAttribute(ui::AX_ATTR_ARIA_READONLY, true);
277 if (src.isButtonStateMixed()) 287 if (src.isButtonStateMixed())
278 dst->AddBoolAttribute(ui::AX_ATTR_BUTTON_MIXED, true); 288 dst->AddBoolAttribute(ui::AX_ATTR_BUTTON_MIXED, true);
279 if (src.canSetValueAttribute()) 289 if (src.canSetValueAttribute())
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 AddIntListAttributeFromWebObjects(ui::AX_ATTR_OWNS_IDS, owns, dst); 583 AddIntListAttributeFromWebObjects(ui::AX_ATTR_OWNS_IDS, owns, dst);
574 } 584 }
575 585
576 blink::WebDocument BlinkAXTreeSource::GetMainDocument() const { 586 blink::WebDocument BlinkAXTreeSource::GetMainDocument() const {
577 if (render_frame_ && render_frame_->GetWebFrame()) 587 if (render_frame_ && render_frame_->GetWebFrame())
578 return render_frame_->GetWebFrame()->document(); 588 return render_frame_->GetWebFrame()->document();
579 return WebDocument(); 589 return WebDocument();
580 } 590 }
581 591
582 } // namespace content 592 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/accessibility/blink_ax_enum_conversion.cc ('k') | content/test/data/accessibility/aria/aria-invalid.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698