• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 UI_BASE_ACCESSIBILITY_ACCESSIBLE_VIEW_STATE_H_
6 #define UI_BASE_ACCESSIBILITY_ACCESSIBLE_VIEW_STATE_H_
7 
8 #include "base/basictypes.h"
9 #include "base/callback.h"
10 #include "base/strings/string16.h"
11 #include "ui/base/accessibility/accessibility_types.h"
12 #include "ui/base/ui_export.h"
13 
14 namespace ui {
15 
16 ////////////////////////////////////////////////////////////////////////////////
17 //
18 // AccessibleViewState
19 //
20 //   A cross-platform struct for storing the core accessibility information
21 //   that should be provided about any UI view to assistive technology (AT).
22 //
23 ////////////////////////////////////////////////////////////////////////////////
24 struct UI_EXPORT AccessibleViewState {
25  public:
26   AccessibleViewState();
27   ~AccessibleViewState();
28 
29   // The view's role, like button or list box.
30   AccessibilityTypes::Role role;
31 
32   // The view's state, a bitmask containing fields such as checked
33   // (for a checkbox) and protected (for a password text box).
34   AccessibilityTypes::State state;
35 
36   // The view's name / label.
37   base::string16 name;
38 
39   // The view's value, for example the text content.
40   base::string16 value;
41 
42   // The name of the default action if the user clicks on this view.
43   base::string16 default_action;
44 
45   // The keyboard shortcut to activate this view, if any.
46   base::string16 keyboard_shortcut;
47 
48   // The selection start and end. Only applies to views with text content,
49   // such as a text box or combo box; start and end should be -1 otherwise.
50   int selection_start;
51   int selection_end;
52 
53   // The selected item's index and the count of the number of items.
54   // Only applies to views with multiple choices like a listbox; both
55   // index and count should be -1 otherwise.
56   int index;
57   int count;
58 
59   // An optional callback that can be used by accessibility clients to
60   // set the string value of this view. This only applies to roles where
61   // setting the value makes sense, like a text box. Not often used by
62   // screen readers, but often used by automation software to script
63   // things like logging into portals or filling forms.
64   //
65   // This callback is only valid for the lifetime of the view, and should
66   // be a safe no-op if the view is deleted. Typically, accessible views
67   // should use a WeakPtr when binding the callback.
68   base::Callback<void(const base::string16&)> set_value_callback;
69 };
70 
71 }  // namespace ui
72 
73 #endif  // UI_BASE_ACCESSIBILITY_ACCESSIBLE_VIEW_STATE_H_
74