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

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

Issue 1130733006: Adds color, font size, text direction and text styles to the accessibility tree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt at exposing style info to the native APIs. Created 5 years, 7 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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 std::string name = UTF16ToUTF8(src.deprecatedTitle()); 227 std::string name = UTF16ToUTF8(src.deprecatedTitle());
228 228
229 std::string value; 229 std::string value;
230 if (src.valueDescription().length()) { 230 if (src.valueDescription().length()) {
231 dst->AddStringAttribute(ui::AX_ATTR_VALUE, 231 dst->AddStringAttribute(ui::AX_ATTR_VALUE,
232 UTF16ToUTF8(src.valueDescription())); 232 UTF16ToUTF8(src.valueDescription()));
233 } else { 233 } else {
234 dst->AddStringAttribute(ui::AX_ATTR_VALUE, UTF16ToUTF8(src.stringValue())); 234 dst->AddStringAttribute(ui::AX_ATTR_VALUE, UTF16ToUTF8(src.stringValue()));
235 } 235 }
236 236
237 if (dst->role == ui::AX_ROLE_COLOR_WELL) { 237 if (dst->role == ui::AX_ROLE_COLOR_WELL)
238 int r, g, b; 238 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE, src.colorValue());
239 src.colorValue(r, g, b); 239
240 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_RED, r); 240
241 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_GREEN, g); 241 // Text attributes.
242 dst->AddIntAttribute(ui::AX_ATTR_COLOR_VALUE_BLUE, b); 242 if (src.backgroundColor())
243 } 243 dst->AddIntAttribute(ui::AX_ATTR_BACKGROUND_COLOR, src.backgroundColor());
244
245 if (src.color())
246 dst->AddIntAttribute(ui::AX_ATTR_COLOR, src.color());
247
248 // Font size is in pixels.
249 if (src.fontSize())
250 dst->AddFloatAttribute(ui::AX_ATTR_FONT_SIZE, src.fontSize());
244 251
245 if (src.invalidState()) { 252 if (src.invalidState()) {
246 dst->AddIntAttribute(ui::AX_ATTR_INVALID_STATE, 253 dst->AddIntAttribute(ui::AX_ATTR_INVALID_STATE,
247 AXInvalidStateFromBlink(src.invalidState())); 254 AXInvalidStateFromBlink(src.invalidState()));
248 } 255 }
249 if (src.invalidState() == blink::WebAXInvalidStateOther) { 256 if (src.invalidState() == blink::WebAXInvalidStateOther) {
250 dst->AddStringAttribute(ui::AX_ATTR_ARIA_INVALID_VALUE, 257 dst->AddStringAttribute(ui::AX_ATTR_ARIA_INVALID_VALUE,
251 UTF16ToUTF8(src.ariaInvalidValue())); 258 UTF16ToUTF8(src.ariaInvalidValue()));
252 } 259 }
253 260
254 if (dst->role == ui::AX_ROLE_INLINE_TEXT_BOX) { 261 if (src.textDirection()) {
255 dst->AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION, 262 dst->AddIntAttribute(ui::AX_ATTR_TEXT_DIRECTION,
256 AXTextDirectionFromBlink(src.textDirection())); 263 AXTextDirectionFromBlink(src.textDirection()));
264 }
257 265
266 if (src.textStyle()) {
267 dst->AddIntAttribute(ui::AX_ATTR_TEXT_STYLE,
268 AXTextStyleFromBlink(src.textStyle()));
269 }
270
271
272 if (dst->role == ui::AX_ROLE_INLINE_TEXT_BOX) {
258 WebVector<int> src_character_offsets; 273 WebVector<int> src_character_offsets;
259 src.characterOffsets(src_character_offsets); 274 src.characterOffsets(src_character_offsets);
260 std::vector<int32> character_offsets; 275 std::vector<int32> character_offsets;
261 character_offsets.reserve(src_character_offsets.size()); 276 character_offsets.reserve(src_character_offsets.size());
262 for (size_t i = 0; i < src_character_offsets.size(); ++i) 277 for (size_t i = 0; i < src_character_offsets.size(); ++i)
263 character_offsets.push_back(src_character_offsets[i]); 278 character_offsets.push_back(src_character_offsets[i]);
264 dst->AddIntListAttribute(ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets); 279 dst->AddIntListAttribute(ui::AX_ATTR_CHARACTER_OFFSETS, character_offsets);
265 280
266 WebVector<int> src_word_starts; 281 WebVector<int> src_word_starts;
267 WebVector<int> src_word_ends; 282 WebVector<int> src_word_ends;
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 AddIntListAttributeFromWebObjects(ui::AX_ATTR_OWNS_IDS, owns, dst); 628 AddIntListAttributeFromWebObjects(ui::AX_ATTR_OWNS_IDS, owns, dst);
614 } 629 }
615 630
616 blink::WebDocument BlinkAXTreeSource::GetMainDocument() const { 631 blink::WebDocument BlinkAXTreeSource::GetMainDocument() const {
617 if (render_frame_ && render_frame_->GetWebFrame()) 632 if (render_frame_ && render_frame_->GetWebFrame())
618 return render_frame_->GetWebFrame()->document(); 633 return render_frame_->GetWebFrame()->document();
619 return WebDocument(); 634 return WebDocument();
620 } 635 }
621 636
622 } // namespace content 637 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/accessibility/blink_ax_enum_conversion.cc ('k') | content/shell/renderer/test_runner/web_ax_object_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698