Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/accessible/html/HTMLElementAccessibles.h
Line
Count
Source (jump to first uncovered line)
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
class HTMLHRAccessible : public LeafAccessible
18
{
19
public:
20
21
  HTMLHRAccessible(nsIContent* aContent, DocAccessible* aDoc) :
22
0
    LeafAccessible(aContent, aDoc) {}
23
24
  // Accessible
25
  virtual a11y::role NativeRole() const override;
26
};
27
28
/**
29
 * Used for HTML br element.
30
 */
31
class HTMLBRAccessible : public LeafAccessible
32
{
33
public:
34
  HTMLBRAccessible(nsIContent* aContent, DocAccessible* aDoc) :
35
    LeafAccessible(aContent, aDoc)
36
0
  {
37
0
    mType = eHTMLBRType;
38
0
    mGenericTypes |= eText;
39
0
  }
40
41
  // Accessible
42
  virtual a11y::role NativeRole() const override;
43
  virtual uint64_t NativeState() const override;
44
45
protected:
46
  // Accessible
47
  virtual ENameValueFlag NativeName(nsString& aName) const override;
48
};
49
50
/**
51
 * Used for HTML label element.
52
 */
53
class HTMLLabelAccessible : public HyperTextAccessibleWrap
54
{
55
public:
56
57
  HTMLLabelAccessible(nsIContent* aContent, DocAccessible* aDoc) :
58
0
    HyperTextAccessibleWrap(aContent, aDoc) {}
59
60
  NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLLabelAccessible,
61
                                       HyperTextAccessibleWrap)
62
63
  // Accessible
64
  virtual Relation RelationByType(RelationType aType) const override;
65
66
  // ActionAccessible
67
  virtual uint8_t ActionCount() const override;
68
  virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
69
  virtual bool DoAction(uint8_t aIndex) const override;
70
71
protected:
72
0
  virtual ~HTMLLabelAccessible() {}
73
  virtual ENameValueFlag NativeName(nsString& aName) const override;
74
};
75
76
/**
77
 * Used for HTML output element.
78
 */
79
class HTMLOutputAccessible : public HyperTextAccessibleWrap
80
{
81
public:
82
83
  HTMLOutputAccessible(nsIContent* aContent, DocAccessible* aDoc) :
84
0
    HyperTextAccessibleWrap(aContent, aDoc) {}
85
86
  NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLOutputAccessible,
87
                                       HyperTextAccessibleWrap)
88
89
  // Accessible
90
  virtual Relation RelationByType(RelationType aType) const override;
91
92
protected:
93
0
  virtual ~HTMLOutputAccessible() {}
94
};
95
96
/**
97
 * Accessible for the HTML summary element.
98
 */
99
class HTMLSummaryAccessible : public HyperTextAccessibleWrap
100
{
101
102
public:
103
  enum { eAction_Click = 0 };
104
105
  HTMLSummaryAccessible(nsIContent* aContent, DocAccessible* aDoc);
106
107
  // Accessible
108
  virtual uint64_t NativeState() const override;
109
110
  // ActionAccessible
111
  virtual uint8_t ActionCount() const override;
112
  virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
113
  virtual bool DoAction(uint8_t aIndex) const override;
114
115
  // Widgets
116
  virtual bool IsWidget() const override;
117
};
118
119
/**
120
 * Used for HTML header and footer elements.
121
 */
122
class HTMLHeaderOrFooterAccessible : public HyperTextAccessibleWrap
123
{
124
public:
125
126
  HTMLHeaderOrFooterAccessible(nsIContent* aContent, DocAccessible* aDoc) :
127
0
    HyperTextAccessibleWrap(aContent, aDoc) {}
128
129
  NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLHeaderOrFooterAccessible,
130
                                       HyperTextAccessibleWrap)
131
132
  // Accessible
133
  virtual nsAtom* LandmarkRole() const override;
134
  virtual a11y::role NativeRole() const override;
135
136
protected:
137
0
  virtual ~HTMLHeaderOrFooterAccessible() {}
138
};
139
140
} // namespace a11y
141
} // namespace mozilla
142
143
#endif