1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/renderer/accessibility/renderer_accessibility.h"
7 #include "base/command_line.h"
8 #include "content/public/common/content_switches.h"
9 #include "content/renderer/render_view_impl.h"
10 #include "third_party/WebKit/public/web/WebAXObject.h"
11 #include "third_party/WebKit/public/web/WebDocument.h"
12 #include "third_party/WebKit/public/web/WebFrame.h"
13 #include "third_party/WebKit/public/web/WebView.h"
15 using WebKit::WebAXObject;
16 using WebKit::WebDocument;
17 using WebKit::WebFrame;
18 using WebKit::WebView;
22 RendererAccessibility::RendererAccessibility(
23 RenderViewImpl* render_view)
24 : RenderViewObserver(render_view),
25 render_view_(render_view),
27 const CommandLine& command_line = *CommandLine::ForCurrentProcess();
28 if (command_line.HasSwitch(switches::kEnableAccessibilityLogging))
32 RendererAccessibility::~RendererAccessibility() {
35 WebDocument RendererAccessibility::GetMainDocument() {
36 WebView* view = render_view()->GetWebView();
37 WebFrame* main_frame = view ? view->mainFrame() : NULL;
40 return main_frame->document();
46 const std::string RendererAccessibility::AccessibilityEventToString(
47 WebKit::WebAXEvent event) {
49 case WebKit::WebAXEventActiveDescendantChanged:
50 return "active descendant changed";
51 case WebKit::WebAXEventAriaAttributeChanged:
52 return "aria attribute changed";
53 case WebKit::WebAXEventAutocorrectionOccured:
54 return "autocorrection occurred";
55 case WebKit::WebAXEventBlur:
57 case WebKit::WebAXEventAlert:
59 case WebKit::WebAXEventCheckedStateChanged:
60 return "check state changed";
61 case WebKit::WebAXEventChildrenChanged:
62 return "children changed";
63 case WebKit::WebAXEventFocus:
64 return "focus changed";
65 case WebKit::WebAXEventInvalidStatusChanged:
66 return "invalid status changed";
67 case WebKit::WebAXEventLayoutComplete:
68 return "layout complete";
69 case WebKit::WebAXEventLiveRegionChanged:
70 return "live region changed";
71 case WebKit::WebAXEventLoadComplete:
72 return "load complete";
73 case WebKit::WebAXEventMenuListItemSelected:
74 return "menu list item selected";
75 case WebKit::WebAXEventMenuListValueChanged:
76 return "menu list changed";
77 case WebKit::WebAXEventShow:
79 case WebKit::WebAXEventHide:
81 case WebKit::WebAXEventRowCountChanged:
82 return "row count changed";
83 case WebKit::WebAXEventRowCollapsed:
84 return "row collapsed";
85 case WebKit::WebAXEventRowExpanded:
86 return "row expanded";
87 case WebKit::WebAXEventScrolledToAnchor:
88 return "scrolled to anchor";
89 case WebKit::WebAXEventSelectedChildrenChanged:
90 return "selected children changed";
91 case WebKit::WebAXEventSelectedTextChanged:
92 return "selected text changed";
93 case WebKit::WebAXEventTextChanged:
94 return "text changed";
95 case WebKit::WebAXEventTextInserted:
96 return "text inserted";
97 case WebKit::WebAXEventTextRemoved:
98 return "text removed";
99 case WebKit::WebAXEventValueChanged:
100 return "value changed";
108 } // namespace content