Line data Source code
1 : /* This Source Code Form is subject to the terms of the Mozilla Public
2 : * License, v. 2.0. If a copy of the MPL was not distributed with this
3 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 :
5 : #include "Filters.h"
6 :
7 : #include "Accessible-inl.h"
8 : #include "nsAccUtils.h"
9 : #include "Role.h"
10 : #include "States.h"
11 :
12 : using namespace mozilla::a11y;
13 : using namespace mozilla::a11y::filters;
14 :
15 : uint32_t
16 0 : filters::GetSelected(Accessible* aAccessible)
17 : {
18 0 : if (aAccessible->State() & states::SELECTED)
19 0 : return eMatch | eSkipSubtree;
20 :
21 0 : return eSkip;
22 : }
23 :
24 : uint32_t
25 0 : filters::GetSelectable(Accessible* aAccessible)
26 : {
27 0 : if (aAccessible->InteractiveState() & states::SELECTABLE)
28 0 : return eMatch | eSkipSubtree;
29 :
30 0 : return eSkip;
31 : }
32 :
33 : uint32_t
34 0 : filters::GetRow(Accessible* aAccessible)
35 : {
36 0 : a11y::role role = aAccessible->Role();
37 0 : if (role == roles::ROW)
38 0 : return eMatch | eSkipSubtree;
39 :
40 : // Look for rows inside rowgroup.
41 0 : if (role == roles::GROUPING)
42 0 : return eSkip;
43 :
44 0 : return eSkipSubtree;
45 : }
46 :
47 : uint32_t
48 0 : filters::GetCell(Accessible* aAccessible)
49 : {
50 0 : return aAccessible->IsTableCell() ? eMatch : eSkipSubtree;
51 : }
|