OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008 Nuanti Ltd. | 3 * Copyright (C) 2008 Nuanti Ltd. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 TextStyleUnderline = 1 << 2, | 317 TextStyleUnderline = 1 << 2, |
318 TextStyleLineThrough = 1 << 3 | 318 TextStyleLineThrough = 1 << 3 |
319 }; | 319 }; |
320 | 320 |
321 enum TextUnderElementMode { | 321 enum TextUnderElementMode { |
322 TextUnderElementAll, | 322 TextUnderElementAll, |
323 TextUnderElementAny // If the text is unimportant, just whether or not it's | 323 TextUnderElementAny // If the text is unimportant, just whether or not it's |
324 // present | 324 // present |
325 }; | 325 }; |
326 | 326 |
| 327 enum class AXBoolAttribute { |
| 328 AriaModal, |
| 329 }; |
| 330 |
| 331 enum class AXStringAttribute { |
| 332 AriaKeyShortcuts, |
| 333 AriaRoleDescription, |
| 334 }; |
| 335 |
| 336 enum class AXObjectAttribute { |
| 337 AriaActiveDescendant, |
| 338 AriaErrorMessage, |
| 339 }; |
| 340 |
| 341 enum class AXObjectVectorAttribute { |
| 342 AriaControls, |
| 343 AriaDetails, |
| 344 AriaFlowTo, |
| 345 }; |
| 346 |
| 347 class AXSparseAttributeMap { |
| 348 public: |
| 349 virtual void addBoolAttribute(AXBoolAttribute, bool) = 0; |
| 350 virtual void addStringAttribute(AXStringAttribute, const String&) = 0; |
| 351 virtual void addObjectAttribute(AXObjectAttribute, AXObject*) = 0; |
| 352 virtual void addObjectVectorAttribute(AXObjectVectorAttribute, |
| 353 HeapVector<Member<AXObject>>&) = 0; |
| 354 }; |
| 355 |
327 // The source of the accessible name of an element. This is needed | 356 // The source of the accessible name of an element. This is needed |
328 // because on some platforms this determines how the accessible name | 357 // because on some platforms this determines how the accessible name |
329 // is exposed. | 358 // is exposed. |
330 enum AXNameFrom { | 359 enum AXNameFrom { |
331 AXNameFromUninitialized = -1, | 360 AXNameFromUninitialized = -1, |
332 AXNameFromAttribute = 0, | 361 AXNameFromAttribute = 0, |
333 AXNameFromCaption, | 362 AXNameFromCaption, |
334 AXNameFromContents, | 363 AXNameFromContents, |
335 AXNameFromPlaceholder, | 364 AXNameFromPlaceholder, |
336 AXNameFromRelatedElement, | 365 AXNameFromRelatedElement, |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
563 | 592 |
564 // The AXObjectCacheImpl that owns this object, and its unique ID within this | 593 // The AXObjectCacheImpl that owns this object, and its unique ID within this |
565 // cache. | 594 // cache. |
566 AXObjectCacheImpl& axObjectCache() const { | 595 AXObjectCacheImpl& axObjectCache() const { |
567 ASSERT(m_axObjectCache); | 596 ASSERT(m_axObjectCache); |
568 return *m_axObjectCache; | 597 return *m_axObjectCache; |
569 } | 598 } |
570 | 599 |
571 AXID axObjectID() const { return m_id; } | 600 AXID axObjectID() const { return m_id; } |
572 | 601 |
| 602 virtual void getSparseAXAttributes(AXSparseAttributeMap&) const {} |
| 603 |
573 // Determine subclass type. | 604 // Determine subclass type. |
574 virtual bool isAXNodeObject() const { return false; } | 605 virtual bool isAXNodeObject() const { return false; } |
575 virtual bool isAXLayoutObject() const { return false; } | 606 virtual bool isAXLayoutObject() const { return false; } |
576 virtual bool isAXListBox() const { return false; } | 607 virtual bool isAXListBox() const { return false; } |
577 virtual bool isAXListBoxOption() const { return false; } | 608 virtual bool isAXListBoxOption() const { return false; } |
578 virtual bool isAXRadioInput() const { return false; } | 609 virtual bool isAXRadioInput() const { return false; } |
579 virtual bool isAXSVGRoot() const { return false; } | 610 virtual bool isAXSVGRoot() const { return false; } |
580 | 611 |
581 // Check object role or purpose. | 612 // Check object role or purpose. |
582 virtual AccessibilityRole roleValue() const { return m_role; } | 613 virtual AccessibilityRole roleValue() const { return m_role; } |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 virtual String ariaInvalidValue() const { return String(); } | 848 virtual String ariaInvalidValue() const { return String(); } |
818 virtual String valueDescription() const { return String(); } | 849 virtual String valueDescription() const { return String(); } |
819 virtual float valueForRange() const { return 0.0f; } | 850 virtual float valueForRange() const { return 0.0f; } |
820 virtual float maxValueForRange() const { return 0.0f; } | 851 virtual float maxValueForRange() const { return 0.0f; } |
821 virtual float minValueForRange() const { return 0.0f; } | 852 virtual float minValueForRange() const { return 0.0f; } |
822 virtual String stringValue() const { return String(); } | 853 virtual String stringValue() const { return String(); } |
823 | 854 |
824 // ARIA attributes. | 855 // ARIA attributes. |
825 virtual AXObject* activeDescendant() { return nullptr; } | 856 virtual AXObject* activeDescendant() { return nullptr; } |
826 virtual String ariaAutoComplete() const { return String(); } | 857 virtual String ariaAutoComplete() const { return String(); } |
827 virtual void ariaFlowToElements(AXObjectVector&) const {} | |
828 virtual void ariaControlsElements(AXObjectVector&) const {} | |
829 virtual void ariaOwnsElements(AXObjectVector& owns) const {} | 858 virtual void ariaOwnsElements(AXObjectVector& owns) const {} |
830 virtual void ariaDescribedbyElements(AXObjectVector&) const {} | 859 virtual void ariaDescribedbyElements(AXObjectVector&) const {} |
831 virtual void ariaLabelledbyElements(AXObjectVector&) const {} | 860 virtual void ariaLabelledbyElements(AXObjectVector&) const {} |
832 virtual bool ariaHasPopup() const { return false; } | 861 virtual bool ariaHasPopup() const { return false; } |
833 virtual bool isEditable() const { return false; } | 862 virtual bool isEditable() const { return false; } |
834 bool isMultiline() const; | 863 bool isMultiline() const; |
835 virtual bool isRichlyEditable() const { return false; } | 864 virtual bool isRichlyEditable() const { return false; } |
836 bool ariaPressedIsPresent() const; | 865 bool ariaPressedIsPresent() const; |
837 virtual AccessibilityRole ariaRoleAttribute() const { return UnknownRole; } | 866 virtual AccessibilityRole ariaRoleAttribute() const { return UnknownRole; } |
838 virtual bool ariaRoleHasPresentationalChildren() const { return false; } | 867 virtual bool ariaRoleHasPresentationalChildren() const { return false; } |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1076 static unsigned s_numberOfLiveAXObjects; | 1105 static unsigned s_numberOfLiveAXObjects; |
1077 }; | 1106 }; |
1078 | 1107 |
1079 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ | 1108 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ |
1080 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, \ | 1109 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, \ |
1081 object.predicate) | 1110 object.predicate) |
1082 | 1111 |
1083 } // namespace blink | 1112 } // namespace blink |
1084 | 1113 |
1085 #endif // AXObject_h | 1114 #endif // AXObject_h |
OLD | NEW |