tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TraversalRule.h (1344B)


      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
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #ifndef _TraversalRule_H_
      8 #define _TraversalRule_H_
      9 
     10 #include "Pivot.h"
     11 
     12 namespace mozilla {
     13 namespace a11y {
     14 
     15 class Accessible;
     16 
     17 /**
     18 * Class represents a simple traversal rule.
     19 */
     20 class TraversalRule : public PivotRule {
     21 public:
     22  TraversalRule();
     23  explicit TraversalRule(int32_t aGranularity, bool aIsLocal);
     24 
     25  ~TraversalRule() = default;
     26 
     27  virtual uint16_t Match(Accessible* aAcc) override;
     28 
     29 private:
     30  bool IsSingleLineage(Accessible* aAccessible);
     31 
     32  bool IsFlatSubtree(const Accessible* aAccessible);
     33 
     34  bool IsListItemBullet(const Accessible* aAccessible);
     35 
     36  bool HasName(const Accessible* aAccessible);
     37 
     38  uint16_t DefaultMatch(Accessible* aAccessible);
     39 
     40  uint16_t LinkMatch(Accessible* aAccessible);
     41 
     42  uint16_t HeadingMatch(Accessible* aAccessible);
     43 
     44  uint16_t ControlMatch(Accessible* aAccessible);
     45 
     46  uint16_t SectionMatch(Accessible* aAccessible);
     47 
     48  uint16_t LandmarkMatch(Accessible* aAccessible);
     49 
     50  int32_t mGranularity;
     51 
     52  bool mIsLocal;
     53 };
     54 
     55 }  // namespace a11y
     56 }  // namespace mozilla
     57 
     58 #endif