|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* vim: set ts=2 et sw=2 tw=80: */ |
|
3 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
4 * License, v. 2.0. If a copy of the MPL was not distributed with this file, |
|
5 * You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
6 |
|
7 #ifndef _mozilla_a11y_aria_ARIAStateMap_h_ |
|
8 #define _mozilla_a11y_aria_ARIAStateMap_h_ |
|
9 |
|
10 #include <stdint.h> |
|
11 |
|
12 namespace mozilla { |
|
13 |
|
14 namespace dom { |
|
15 class Element; |
|
16 } |
|
17 |
|
18 namespace a11y { |
|
19 namespace aria { |
|
20 |
|
21 /** |
|
22 * List of the ARIA state mapping rules. |
|
23 */ |
|
24 enum EStateRule |
|
25 { |
|
26 eARIANone, |
|
27 eARIAAutoComplete, |
|
28 eARIABusy, |
|
29 eARIACheckableBool, |
|
30 eARIACheckableMixed, |
|
31 eARIACheckedMixed, |
|
32 eARIADisabled, |
|
33 eARIAExpanded, |
|
34 eARIAHasPopup, |
|
35 eARIAInvalid, |
|
36 eARIAMultiline, |
|
37 eARIAMultiSelectable, |
|
38 eARIAOrientation, |
|
39 eARIAPressed, |
|
40 eARIAReadonly, |
|
41 eARIAReadonlyOrEditable, |
|
42 eARIAReadonlyOrEditableIfDefined, |
|
43 eARIARequired, |
|
44 eARIASelectable, |
|
45 eARIASelectableIfDefined, |
|
46 eReadonlyUntilEditable, |
|
47 eIndeterminateIfNoValue, |
|
48 eFocusableUntilDisabled |
|
49 }; |
|
50 |
|
51 /** |
|
52 * Expose the accessible states for the given element accordingly to state |
|
53 * mapping rule. |
|
54 * |
|
55 * @param aRule [in] state mapping rule ID |
|
56 * @param aElement [in] node of the accessible |
|
57 * @param aState [in/out] accessible states |
|
58 * @return true if state map rule ID is valid |
|
59 */ |
|
60 bool MapToState(EStateRule aRule, dom::Element* aElement, uint64_t* aState); |
|
61 |
|
62 } // namespace aria |
|
63 } // namespace a11y |
|
64 } // namespace mozilla |
|
65 |
|
66 #endif |