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_FormControlAccessible_H_ 7 #define MOZILLA_A11Y_FormControlAccessible_H_ 8 9 #include "BaseAccessibles.h" 10 11 namespace mozilla { 12 namespace a11y { 13 14 /** 15 * Checkbox accessible. 16 */ 17 class CheckboxAccessible : public LeafAccessible { 18 public: 19 enum { eAction_Click = 0 }; 20 CheckboxAccessible(nsIContent * aContent,DocAccessible * aDoc)21 CheckboxAccessible(nsIContent* aContent, DocAccessible* aDoc) 22 : LeafAccessible(aContent, aDoc) { 23 // Ignore "CheckboxStateChange" DOM event in lieu of document observer 24 // state change notification. 25 if (aContent->IsHTMLElement()) { 26 mStateFlags |= eIgnoreDOMUIEvent; 27 } 28 } 29 30 // LocalAccessible 31 virtual mozilla::a11y::role NativeRole() const override; 32 virtual uint64_t NativeState() const override; 33 34 // ActionAccessible 35 virtual uint8_t ActionCount() const override; 36 virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override; 37 virtual bool DoAction(uint8_t aIndex) const override; 38 39 // Widgets 40 virtual bool IsWidget() const override; 41 }; 42 43 /** 44 * Generic class used for radio buttons. 45 */ 46 class RadioButtonAccessible : public LeafAccessible { 47 public: 48 RadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc); 49 50 // LocalAccessible 51 virtual mozilla::a11y::role NativeRole() const override; 52 53 // ActionAccessible 54 virtual uint8_t ActionCount() const override; 55 virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override; 56 virtual bool DoAction(uint8_t aIndex) const override; 57 58 enum { eAction_Click = 0 }; 59 60 // Widgets 61 virtual bool IsWidget() const override; 62 }; 63 64 } // namespace a11y 65 } // namespace mozilla 66 67 #endif 68