Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Side by Side Diff: third_party/WebKit/Source/modules/accessibility/AXObject.h

Issue 2589273002: Add sparse accessibility attribute interface to Blink (Closed)
Patch Set: Address feedback Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 TextStyleUnderline = 1 << 2, 319 TextStyleUnderline = 1 << 2,
320 TextStyleLineThrough = 1 << 3 320 TextStyleLineThrough = 1 << 3
321 }; 321 };
322 322
323 enum TextUnderElementMode { 323 enum TextUnderElementMode {
324 TextUnderElementAll, 324 TextUnderElementAll,
325 TextUnderElementAny // If the text is unimportant, just whether or not it's 325 TextUnderElementAny // If the text is unimportant, just whether or not it's
326 // present 326 // present
327 }; 327 };
328 328
329 enum class AXBoolAttribute {};
330
331 enum class AXStringAttribute {};
332
333 enum class AXObjectAttribute {
334 AriaActiveDescendant,
335 };
336
337 enum class AXObjectVectorAttribute {
338 AriaControls,
339 AriaFlowTo,
340 };
341
342 class AXSparseAttributeClient {
343 public:
344 virtual void addBoolAttribute(AXBoolAttribute, bool) = 0;
345 virtual void addStringAttribute(AXStringAttribute, const String&) = 0;
346 virtual void addObjectAttribute(AXObjectAttribute, AXObject&) = 0;
347 virtual void addObjectVectorAttribute(AXObjectVectorAttribute,
348 HeapVector<Member<AXObject>>&) = 0;
349 };
350
329 // The source of the accessible name of an element. This is needed 351 // The source of the accessible name of an element. This is needed
330 // because on some platforms this determines how the accessible name 352 // because on some platforms this determines how the accessible name
331 // is exposed. 353 // is exposed.
332 enum AXNameFrom { 354 enum AXNameFrom {
333 AXNameFromUninitialized = -1, 355 AXNameFromUninitialized = -1,
334 AXNameFromAttribute = 0, 356 AXNameFromAttribute = 0,
335 AXNameFromCaption, 357 AXNameFromCaption,
336 AXNameFromContents, 358 AXNameFromContents,
337 AXNameFromPlaceholder, 359 AXNameFromPlaceholder,
338 AXNameFromRelatedElement, 360 AXNameFromRelatedElement,
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 587
566 // The AXObjectCacheImpl that owns this object, and its unique ID within this 588 // The AXObjectCacheImpl that owns this object, and its unique ID within this
567 // cache. 589 // cache.
568 AXObjectCacheImpl& axObjectCache() const { 590 AXObjectCacheImpl& axObjectCache() const {
569 ASSERT(m_axObjectCache); 591 ASSERT(m_axObjectCache);
570 return *m_axObjectCache; 592 return *m_axObjectCache;
571 } 593 }
572 594
573 AXID axObjectID() const { return m_id; } 595 AXID axObjectID() const { return m_id; }
574 596
597 virtual void getSparseAXAttributes(AXSparseAttributeClient&) const {}
598
575 // Determine subclass type. 599 // Determine subclass type.
576 virtual bool isAXNodeObject() const { return false; } 600 virtual bool isAXNodeObject() const { return false; }
577 virtual bool isAXLayoutObject() const { return false; } 601 virtual bool isAXLayoutObject() const { return false; }
578 virtual bool isAXListBox() const { return false; } 602 virtual bool isAXListBox() const { return false; }
579 virtual bool isAXListBoxOption() const { return false; } 603 virtual bool isAXListBoxOption() const { return false; }
580 virtual bool isAXRadioInput() const { return false; } 604 virtual bool isAXRadioInput() const { return false; }
581 virtual bool isAXSVGRoot() const { return false; } 605 virtual bool isAXSVGRoot() const { return false; }
582 606
583 // Check object role or purpose. 607 // Check object role or purpose.
584 virtual AccessibilityRole roleValue() const { return m_role; } 608 virtual AccessibilityRole roleValue() const { return m_role; }
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 virtual String ariaInvalidValue() const { return String(); } 843 virtual String ariaInvalidValue() const { return String(); }
820 virtual String valueDescription() const { return String(); } 844 virtual String valueDescription() const { return String(); }
821 virtual float valueForRange() const { return 0.0f; } 845 virtual float valueForRange() const { return 0.0f; }
822 virtual float maxValueForRange() const { return 0.0f; } 846 virtual float maxValueForRange() const { return 0.0f; }
823 virtual float minValueForRange() const { return 0.0f; } 847 virtual float minValueForRange() const { return 0.0f; }
824 virtual String stringValue() const { return String(); } 848 virtual String stringValue() const { return String(); }
825 849
826 // ARIA attributes. 850 // ARIA attributes.
827 virtual AXObject* activeDescendant() { return nullptr; } 851 virtual AXObject* activeDescendant() { return nullptr; }
828 virtual String ariaAutoComplete() const { return String(); } 852 virtual String ariaAutoComplete() const { return String(); }
829 virtual void ariaFlowToElements(AXObjectVector&) const {}
830 virtual void ariaControlsElements(AXObjectVector&) const {}
831 virtual void ariaOwnsElements(AXObjectVector& owns) const {} 853 virtual void ariaOwnsElements(AXObjectVector& owns) const {}
832 virtual void ariaDescribedbyElements(AXObjectVector&) const {} 854 virtual void ariaDescribedbyElements(AXObjectVector&) const {}
833 virtual void ariaLabelledbyElements(AXObjectVector&) const {} 855 virtual void ariaLabelledbyElements(AXObjectVector&) const {}
834 virtual bool ariaHasPopup() const { return false; } 856 virtual bool ariaHasPopup() const { return false; }
835 virtual bool isEditable() const { return false; } 857 virtual bool isEditable() const { return false; }
836 bool isMultiline() const; 858 bool isMultiline() const;
837 virtual bool isRichlyEditable() const { return false; } 859 virtual bool isRichlyEditable() const { return false; }
838 bool ariaPressedIsPresent() const; 860 bool ariaPressedIsPresent() const;
839 virtual AccessibilityRole ariaRoleAttribute() const { return UnknownRole; } 861 virtual AccessibilityRole ariaRoleAttribute() const { return UnknownRole; }
840 virtual bool ariaRoleHasPresentationalChildren() const { return false; } 862 virtual bool ariaRoleHasPresentationalChildren() const { return false; }
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 static unsigned s_numberOfLiveAXObjects; 1100 static unsigned s_numberOfLiveAXObjects;
1079 }; 1101 };
1080 1102
1081 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ 1103 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \
1082 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, \ 1104 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, \
1083 object.predicate) 1105 object.predicate)
1084 1106
1085 } // namespace blink 1107 } // namespace blink
1086 1108
1087 #endif // AXObject_h 1109 #endif // AXObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698