• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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.
4 
5 #ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_ANDROID_H_
6 #define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_ANDROID_H_
7 
8 #include "base/android/scoped_java_ref.h"
9 #include "content/browser/accessibility/browser_accessibility.h"
10 
11 namespace content {
12 
13 class BrowserAccessibilityAndroid : public BrowserAccessibility {
14  public:
15   // Overrides from BrowserAccessibility.
16   virtual void OnDataChanged() OVERRIDE;
17   virtual bool IsNative() const OVERRIDE;
18   virtual void OnLocationChanged() OVERRIDE;
19 
20   virtual bool PlatformIsLeaf() const OVERRIDE;
21 
22   bool IsCheckable() const;
23   bool IsChecked() const;
24   bool IsClickable() const;
25   bool IsCollection() const;
26   bool IsCollectionItem() const;
27   bool IsContentInvalid() const;
28   bool IsDismissable() const;
29   bool IsEnabled() const;
30   bool IsFocusable() const;
31   bool IsFocused() const;
32   bool IsHeading() const;
33   bool IsHierarchical() const;
34   bool IsLink() const;
35   bool IsMultiLine() const;
36   bool IsPassword() const;
37   bool IsRangeType() const;
38   bool IsScrollable() const;
39   bool IsSelected() const;
40   bool IsVisibleToUser() const;
41 
42   bool CanOpenPopup() const;
43 
44   bool HasFocusableChild() const;
45 
46   const char* GetClassName() const;
47   base::string16 GetText() const;
48 
49   int GetItemIndex() const;
50   int GetItemCount() const;
51 
52   int GetScrollX() const;
53   int GetScrollY() const;
54   int GetMaxScrollX() const;
55   int GetMaxScrollY() const;
56 
57   int GetTextChangeFromIndex() const;
58   int GetTextChangeAddedCount() const;
59   int GetTextChangeRemovedCount() const;
60   base::string16 GetTextChangeBeforeText() const;
61 
62   int GetSelectionStart() const;
63   int GetSelectionEnd() const;
64   int GetEditableTextLength() const;
65 
66   int AndroidInputType() const;
67   int AndroidLiveRegionType() const;
68   int AndroidRangeType() const;
69 
70   int RowCount() const;
71   int ColumnCount() const;
72 
73   int RowIndex() const;
74   int RowSpan() const;
75   int ColumnIndex() const;
76   int ColumnSpan() const;
77 
78   float RangeMin() const;
79   float RangeMax() const;
80   float RangeCurrentValue() const;
81 
82  private:
83   // This gives BrowserAccessibility::Create access to the class constructor.
84   friend class BrowserAccessibility;
85 
86   BrowserAccessibilityAndroid();
87 
88   bool HasOnlyStaticTextChildren() const;
89   bool IsIframe() const;
90 
91   void NotifyLiveRegionUpdate(base::string16& aria_live);
92 
93   int CountChildrenWithRole(ui::AXRole role) const;
94 
95   base::string16 cached_text_;
96   bool first_time_;
97   base::string16 old_value_;
98   base::string16 new_value_;
99 
100   DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityAndroid);
101 };
102 
103 }  // namespace content
104 
105 #endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_ANDROID_H_
106