1 // Copyright 2019 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_MEDIA_ELEMENT_H_ 6 #define THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_MEDIA_ELEMENT_H_ 7 8 #include "base/macros.h" 9 #include "third_party/blink/renderer/core/html/media/html_media_element.h" 10 #include "third_party/blink/renderer/modules/accessibility/ax_layout_object.h" 11 12 namespace blink { 13 14 class AXObjectCacheImpl; 15 16 class AccessibilityMediaElement : public AXLayoutObject { 17 public: 18 static AXObject* Create(LayoutObject*, AXObjectCacheImpl&); 19 20 AccessibilityMediaElement(LayoutObject*, AXObjectCacheImpl&); 21 ~AccessibilityMediaElement() override = default; 22 23 // AXLayoutObject overrides. 24 String TextAlternative(bool recursive, 25 bool in_aria_labelled_by_traversal, 26 AXObjectSet& visited, 27 ax::mojom::NameFrom&, 28 AXRelatedObjectVector*, 29 NameSources*) const override; 30 31 // AXNodeObject overrides. 32 bool CanHaveChildren() const override; 33 bool ComputeAccessibilityIsIgnored(IgnoredReasons* = nullptr) const override; 34 AXRestriction Restriction() const override; 35 36 protected: 37 bool HasControls() const; 38 bool HasEmptySource() const; 39 bool IsUnplayable() const; 40 41 DISALLOW_COPY_AND_ASSIGN(AccessibilityMediaElement); 42 }; 43 44 } // namespace blink 45 46 #endif // THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_MEDIA_ELEMENT_H_ 47