Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : #ifndef mozilla_a11y_HTMLElementAccessibles_h__
7 : #define mozilla_a11y_HTMLElementAccessibles_h__
8 :
9 : #include "BaseAccessibles.h"
10 :
11 : namespace mozilla {
12 : namespace a11y {
13 :
14 : /**
15 : * Used for HTML hr element.
16 : */
17 0 : class HTMLHRAccessible : public LeafAccessible
18 : {
19 : public:
20 :
21 0 : HTMLHRAccessible(nsIContent* aContent, DocAccessible* aDoc) :
22 0 : LeafAccessible(aContent, aDoc) {}
23 :
24 : // Accessible
25 : virtual a11y::role NativeRole() override;
26 : };
27 :
28 : /**
29 : * Used for HTML br element.
30 : */
31 0 : class HTMLBRAccessible : public LeafAccessible
32 : {
33 : public:
34 0 : HTMLBRAccessible(nsIContent* aContent, DocAccessible* aDoc) :
35 0 : LeafAccessible(aContent, aDoc)
36 : {
37 0 : mType = eHTMLBRType;
38 0 : mGenericTypes |= eText;
39 0 : }
40 :
41 : // Accessible
42 : virtual a11y::role NativeRole() override;
43 : virtual uint64_t NativeState() override;
44 :
45 : protected:
46 : // Accessible
47 : virtual ENameValueFlag NativeName(nsString& aName) override;
48 : };
49 :
50 : /**
51 : * Used for HTML label element.
52 : */
53 : class HTMLLabelAccessible : public HyperTextAccessibleWrap
54 : {
55 : public:
56 :
57 0 : HTMLLabelAccessible(nsIContent* aContent, DocAccessible* aDoc) :
58 0 : HyperTextAccessibleWrap(aContent, aDoc) {}
59 :
60 : NS_DECL_ISUPPORTS_INHERITED
61 :
62 : // Accessible
63 : virtual Relation RelationByType(RelationType aType) override;
64 :
65 : // ActionAccessible
66 : virtual uint8_t ActionCount() override;
67 : virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
68 : virtual bool DoAction(uint8_t aIndex) override;
69 :
70 : protected:
71 0 : virtual ~HTMLLabelAccessible() {}
72 : virtual ENameValueFlag NativeName(nsString& aName) override;
73 : };
74 :
75 : /**
76 : * Used for HTML output element.
77 : */
78 : class HTMLOutputAccessible : public HyperTextAccessibleWrap
79 : {
80 : public:
81 :
82 0 : HTMLOutputAccessible(nsIContent* aContent, DocAccessible* aDoc) :
83 0 : HyperTextAccessibleWrap(aContent, aDoc) {}
84 :
85 : NS_DECL_ISUPPORTS_INHERITED
86 :
87 : // Accessible
88 : virtual Relation RelationByType(RelationType aType) override;
89 :
90 : protected:
91 0 : virtual ~HTMLOutputAccessible() {}
92 : };
93 :
94 : /**
95 : * Accessible for the HTML summary element.
96 : */
97 0 : class HTMLSummaryAccessible : public HyperTextAccessibleWrap
98 : {
99 :
100 : public:
101 : enum { eAction_Click = 0 };
102 :
103 : HTMLSummaryAccessible(nsIContent* aContent, DocAccessible* aDoc);
104 :
105 : // Accessible
106 : virtual uint64_t NativeState() override;
107 :
108 : // ActionAccessible
109 : virtual uint8_t ActionCount() override;
110 : virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
111 : virtual bool DoAction(uint8_t aIndex) override;
112 :
113 : // Widgets
114 : virtual bool IsWidget() const override;
115 : };
116 :
117 : } // namespace a11y
118 : } // namespace mozilla
119 :
120 : #endif
|