HTMLLinkAccessible.h 1.4 KB

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