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_HTMLLinkAccessible_h__
7 : #define mozilla_a11y_HTMLLinkAccessible_h__
8 :
9 : #include "HyperTextAccessibleWrap.h"
10 :
11 : namespace mozilla {
12 : namespace a11y {
13 :
14 : class HTMLLinkAccessible : public HyperTextAccessibleWrap
15 : {
16 : public:
17 : HTMLLinkAccessible(nsIContent* aContent, DocAccessible* aDoc);
18 :
19 : NS_DECL_ISUPPORTS_INHERITED
20 :
21 : // Accessible
22 : virtual void Value(nsString& aValue) override;
23 : virtual a11y::role NativeRole() override;
24 : virtual uint64_t NativeState() override;
25 : virtual uint64_t NativeLinkState() const override;
26 : virtual uint64_t NativeInteractiveState() const override;
27 :
28 : // ActionAccessible
29 : virtual uint8_t ActionCount() override;
30 : virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
31 : virtual bool DoAction(uint8_t aIndex) override;
32 :
33 : // HyperLinkAccessible
34 : virtual bool IsLink() override;
35 : virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) override;
36 :
37 : protected:
38 0 : virtual ~HTMLLinkAccessible() {}
39 :
40 : enum { eAction_Jump = 0 };
41 :
42 : /**
43 : * Returns true if the link has href attribute.
44 : */
45 : bool IsLinked() const;
46 : };
47 :
48 : } // namespace a11y
49 : } // namespace mozilla
50 :
51 : #endif
|