a0f981de7c3b26034d6de682c3f73f44b845e4c4
[WebKit-https.git] / Tools / WebKitTestRunner / InjectedBundle / ios / AccessibilityUIElementIOS.mm
1 /*
2  * Copyright (C) 2014 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #import "config.h"
27 #import "AccessibilityNotificationHandler.h"
28 #import "AccessibilityUIElement.h"
29 #import "InjectedBundle.h"
30 #import "InjectedBundlePage.h"
31 #import <UIKit/UIKit.h>
32
33 namespace WTR {
34
35 AccessibilityUIElement::AccessibilityUIElement(PlatformUIElement element)
36     : m_element(element)
37 {
38     // FIXME: ap@webkit.org says ObjC objects need to be CFRetained/CFRelease to be GC-compliant on the mac.
39     [m_element retain];
40 }
41
42 AccessibilityUIElement::AccessibilityUIElement(const AccessibilityUIElement& other)
43     : JSWrappable()
44     , m_element(other.m_element)
45 {
46     [m_element retain];
47 }
48
49 AccessibilityUIElement::~AccessibilityUIElement()
50 {
51     [m_element release];
52 }
53
54 bool AccessibilityUIElement::isEqual(AccessibilityUIElement* otherElement)
55 {
56     if (!otherElement)
57         return false;
58     return platformUIElement() == otherElement->platformUIElement();
59 }
60
61 void AccessibilityUIElement::getLinkedUIElements(Vector<RefPtr<AccessibilityUIElement> >& elementVector)
62 {
63 }
64
65 void AccessibilityUIElement::getDocumentLinks(Vector<RefPtr<AccessibilityUIElement> >& elementVector)
66 {
67 }
68
69 void AccessibilityUIElement::getChildren(Vector<RefPtr<AccessibilityUIElement> >& elementVector)
70 {
71     NSInteger childCount = [m_element accessibilityElementCount];
72     for (NSInteger k = 0; k < childCount; ++k)
73         elementVector.append(AccessibilityUIElement::create([m_element accessibilityElementAtIndex:k]));
74 }
75
76 void AccessibilityUIElement::getChildrenWithRange(Vector<RefPtr<AccessibilityUIElement> >& elementVector, unsigned location, unsigned length)
77 {
78     NSUInteger childCount = [m_element accessibilityElementCount];
79     for (NSUInteger k = location; k < childCount && k < (location+length); ++k)
80         elementVector.append(AccessibilityUIElement::create([m_element accessibilityElementAtIndex:k]));
81 }
82
83 int AccessibilityUIElement::childrenCount()
84 {
85     Vector<RefPtr<AccessibilityUIElement>> children;
86     getChildren(children);
87
88     return children.size();
89 }
90
91 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::elementAtPoint(int x, int y)
92 {
93     return 0;
94 }
95
96 unsigned AccessibilityUIElement::indexOfChild(AccessibilityUIElement* element)
97 {
98     return 0;
99 }
100
101 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::childAtIndex(unsigned index)
102 {
103     Vector<RefPtr<AccessibilityUIElement> > children;
104     getChildrenWithRange(children, index, 1);
105
106     if (children.size() == 1)
107         return children[0];
108     return 0;
109 }
110
111 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::linkedUIElementAtIndex(unsigned index)
112 {
113     return 0;
114 }
115
116 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::ariaOwnsElementAtIndex(unsigned index)
117 {
118     return 0;
119 }
120
121 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::ariaFlowToElementAtIndex(unsigned index)
122 {
123     return 0;
124 }
125
126 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::ariaControlsElementAtIndex(unsigned index)
127 {
128     return 0;
129 }
130
131 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::disclosedRowAtIndex(unsigned index)
132 {
133     return 0;
134 }
135
136 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::rowAtIndex(unsigned index)
137 {
138     return 0;
139 }
140
141 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::selectedChildAtIndex(unsigned index) const
142 {
143     return 0;
144 }
145
146 unsigned AccessibilityUIElement::selectedChildrenCount() const
147 {
148     return 0;
149 }
150
151 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::selectedRowAtIndex(unsigned index)
152 {
153     return 0;
154 }
155
156 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::titleUIElement()
157 {
158     return 0;
159 }
160
161 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::parentElement()
162 {
163     return nil;
164 }
165
166 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::disclosedByRow()
167 {
168     return 0;
169 }
170
171 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfLinkedUIElements()
172 {
173     return JSStringCreateWithCharacters(0, 0);
174 }
175
176 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfDocumentLinks()
177 {
178     return JSStringCreateWithCharacters(0, 0);
179 }
180
181 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfChildren()
182 {
183     return JSStringCreateWithCharacters(0, 0);
184 }
185
186 JSRetainPtr<JSStringRef> AccessibilityUIElement::allAttributes()
187 {
188     return JSStringCreateWithCharacters(0, 0);
189 }
190
191 JSRetainPtr<JSStringRef> AccessibilityUIElement::stringAttributeValue(JSStringRef attribute)
192 {
193     return JSStringCreateWithCharacters(0, 0);
194 }
195
196 double AccessibilityUIElement::numberAttributeValue(JSStringRef attribute)
197 {
198     return 0;
199 }
200
201 JSValueRef AccessibilityUIElement::uiElementArrayAttributeValue(JSStringRef attribute) const
202 {
203     return 0;
204 }
205
206 JSValueRef AccessibilityUIElement::rowHeaders() const
207 {
208     return nullptr;
209 }
210
211 JSValueRef AccessibilityUIElement::columnHeaders() const
212 {
213     return nullptr;
214 }
215
216 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::uiElementAttributeValue(JSStringRef attribute) const
217 {
218     return 0;
219 }
220
221 bool AccessibilityUIElement::boolAttributeValue(JSStringRef attribute)
222 {
223     return false;
224 }
225
226 bool AccessibilityUIElement::isAttributeSettable(JSStringRef attribute)
227 {
228     return false;
229 }
230
231 bool AccessibilityUIElement::isAttributeSupported(JSStringRef attribute)
232 {
233     return false;
234 }
235
236 JSRetainPtr<JSStringRef> AccessibilityUIElement::parameterizedAttributeNames()
237 {
238     return JSStringCreateWithCharacters(0, 0);
239 }
240
241 JSRetainPtr<JSStringRef> AccessibilityUIElement::role()
242 {
243     return JSStringCreateWithCharacters(0, 0);
244 }
245
246 JSRetainPtr<JSStringRef> AccessibilityUIElement::subrole()
247 {
248     return JSStringCreateWithCharacters(0, 0);
249 }
250
251 JSRetainPtr<JSStringRef> AccessibilityUIElement::roleDescription()
252 {
253     return JSStringCreateWithCharacters(0, 0);
254 }
255
256 JSRetainPtr<JSStringRef> AccessibilityUIElement::computedRoleString()
257 {
258     // FIXME: implement
259     return JSStringCreateWithCharacters(0, 0);
260 }
261
262 JSRetainPtr<JSStringRef> AccessibilityUIElement::title()
263 {
264     return JSStringCreateWithCharacters(0, 0);
265 }
266
267 JSRetainPtr<JSStringRef> AccessibilityUIElement::description()
268 {
269     return JSStringCreateWithCharacters(0, 0);
270 }
271
272 JSRetainPtr<JSStringRef> AccessibilityUIElement::orientation() const
273 {
274     return JSStringCreateWithCharacters(0, 0);
275 }
276
277 JSRetainPtr<JSStringRef> AccessibilityUIElement::stringValue()
278 {
279     return JSStringCreateWithCharacters(0, 0);
280 }
281
282 JSRetainPtr<JSStringRef> AccessibilityUIElement::language()
283 {
284     return JSStringCreateWithCharacters(0, 0);
285 }
286
287 JSRetainPtr<JSStringRef> AccessibilityUIElement::helpText() const
288 {
289     return JSStringCreateWithCharacters(0, 0);
290 }
291
292 double AccessibilityUIElement::x()
293 {
294     CGRect frame = [m_element accessibilityFrame];
295     return frame.origin.x;
296 }
297
298 double AccessibilityUIElement::y()
299 {
300     CGRect frame = [m_element accessibilityFrame];
301     return frame.origin.y;
302 }
303
304 double AccessibilityUIElement::width()
305 {
306     CGRect frame = [m_element accessibilityFrame];
307     return frame.size.width;
308 }
309
310 double AccessibilityUIElement::height()
311 {
312     CGRect frame = [m_element accessibilityFrame];
313     return frame.size.height;
314 }
315
316 double AccessibilityUIElement::clickPointX()
317 {
318     return 0;
319 }
320
321 double AccessibilityUIElement::clickPointY()
322 {
323     return 0;
324 }
325
326 double AccessibilityUIElement::intValue() const
327 {
328     return 0;
329 }
330
331 double AccessibilityUIElement::minValue()
332 {
333     return 0;
334 }
335
336 double AccessibilityUIElement::maxValue()
337 {
338     return 0;
339 }
340
341 JSRetainPtr<JSStringRef> AccessibilityUIElement::valueDescription()
342 {
343     return JSStringCreateWithCharacters(0, 0);
344 }
345
346 int AccessibilityUIElement::insertionPointLineNumber()
347 {
348     return -1;
349 }
350
351 bool AccessibilityUIElement::isPressActionSupported()
352 {
353     return false;
354 }
355
356 bool AccessibilityUIElement::isIncrementActionSupported()
357 {
358     return false;
359 }
360
361 bool AccessibilityUIElement::isDecrementActionSupported()
362 {
363     return false;
364 }
365
366 bool AccessibilityUIElement::isEnabled()
367 {
368     return false;
369 }
370
371 bool AccessibilityUIElement::isRequired() const
372 {
373     return false;
374 }
375
376 bool AccessibilityUIElement::isFocused() const
377 {
378     // FIXME: implement
379     return false;
380 }
381
382 bool AccessibilityUIElement::isSelected() const
383 {
384     UIAccessibilityTraits traits = [m_element accessibilityTraits];
385     return (traits & UIAccessibilityTraitSelected);
386 }
387
388 bool AccessibilityUIElement::isSelectedOptionActive() const
389 {
390     // FIXME: implement
391     return false;
392 }
393
394 bool AccessibilityUIElement::isIndeterminate() const
395 {
396     // FIXME: implement
397     return false;
398 }
399
400 bool AccessibilityUIElement::isExpanded() const
401 {
402     return false;
403 }
404
405 bool AccessibilityUIElement::isChecked() const
406 {
407     return false;
408 }
409
410 int AccessibilityUIElement::hierarchicalLevel() const
411 {
412     return 0;
413 }
414
415 JSRetainPtr<JSStringRef> AccessibilityUIElement::classList() const
416 {
417     return nullptr;
418 }
419
420 JSRetainPtr<JSStringRef> AccessibilityUIElement::speak()
421 {
422     return nullptr;
423 }
424
425 bool AccessibilityUIElement::ariaIsGrabbed() const
426 {
427     return false;
428 }
429
430 JSRetainPtr<JSStringRef> AccessibilityUIElement::ariaDropEffects() const
431 {
432     return JSStringCreateWithCharacters(0, 0);
433 }
434
435 // parameterized attributes
436 int AccessibilityUIElement::lineForIndex(int index)
437 {
438     return -1;
439 }
440
441 JSRetainPtr<JSStringRef> AccessibilityUIElement::rangeForLine(int line)
442 {
443     return 0;
444 }
445
446 JSRetainPtr<JSStringRef> AccessibilityUIElement::rangeForPosition(int x, int y)
447 {
448     return 0;
449 }
450
451 JSRetainPtr<JSStringRef> AccessibilityUIElement::boundsForRange(unsigned location, unsigned length)
452 {
453     return JSStringCreateWithCharacters(0, 0);
454 }
455
456 JSRetainPtr<JSStringRef> AccessibilityUIElement::stringForRange(unsigned location, unsigned length)
457 {
458     return JSStringCreateWithCharacters(0, 0);
459 }
460
461 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributedStringForRange(unsigned location, unsigned length)
462 {
463     return JSStringCreateWithCharacters(0, 0);
464 }
465
466 bool AccessibilityUIElement::attributedStringRangeIsMisspelled(unsigned location, unsigned length)
467 {
468     return false;
469 }
470
471 unsigned AccessibilityUIElement::uiElementCountForSearchPredicate(JSContextRef context, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly, bool immediateDescendantsOnly)
472 {
473     return 0;
474 }
475
476 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::uiElementForSearchPredicate(JSContextRef context, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly, bool immediateDescendantsOnly)
477 {
478     return nullptr;
479 }
480
481 JSRetainPtr<JSStringRef> AccessibilityUIElement::selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString, JSStringRef activity)
482 {
483     return nullptr;
484 }
485
486 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfColumnHeaders()
487 {
488     return JSStringCreateWithCharacters(0, 0);
489 }
490
491 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfRowHeaders()
492 {
493     return JSStringCreateWithCharacters(0, 0);
494 }
495
496 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfColumns()
497 {
498     return JSStringCreateWithCharacters(0, 0);
499 }
500
501 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfRows()
502 {
503     return JSStringCreateWithCharacters(0, 0);
504 }
505
506 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfVisibleCells()
507 {
508     return JSStringCreateWithCharacters(0, 0);
509 }
510
511 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfHeader()
512 {
513     return JSStringCreateWithCharacters(0, 0);
514 }
515
516 int AccessibilityUIElement::rowCount()
517 {
518     return -1;
519 }
520
521 int AccessibilityUIElement::columnCount()
522 {
523     return -1;
524 }
525
526 int AccessibilityUIElement::indexInTable()
527 {
528     return -1;
529 }
530
531 JSRetainPtr<JSStringRef> AccessibilityUIElement::rowIndexRange()
532 {
533     return JSStringCreateWithCharacters(0, 0);
534 }
535
536 JSRetainPtr<JSStringRef> AccessibilityUIElement::columnIndexRange()
537 {
538     return JSStringCreateWithCharacters(0, 0);
539 }
540
541 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::cellForColumnAndRow(unsigned col, unsigned row)
542 {
543     return 0;
544 }
545
546 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::horizontalScrollbar() const
547 {
548     return 0;
549 }
550
551 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::verticalScrollbar() const
552 {
553     return 0;
554 }
555
556 void AccessibilityUIElement::scrollToMakeVisible()
557 {
558 }
559
560 JSRetainPtr<JSStringRef> AccessibilityUIElement::selectedTextRange()
561 {
562     return JSStringCreateWithCharacters(0, 0);
563 }
564
565 bool AccessibilityUIElement::setSelectedVisibleTextRange(AccessibilityTextMarkerRange*)
566 {
567     return false;
568 }
569
570 bool AccessibilityUIElement::setSelectedTextRange(unsigned location, unsigned length)
571 {
572     return false;
573 }
574
575 void AccessibilityUIElement::increment()
576 {
577     [m_element accessibilityIncrement];
578 }
579
580 void AccessibilityUIElement::decrement()
581 {
582     [m_element accessibilityDecrement];
583 }
584
585 void AccessibilityUIElement::showMenu()
586 {
587 }
588
589 void AccessibilityUIElement::press()
590 {
591 }
592
593 void AccessibilityUIElement::setSelectedChild(AccessibilityUIElement* element) const
594 {
595 }
596
597 JSRetainPtr<JSStringRef> AccessibilityUIElement::accessibilityValue() const
598 {
599     // FIXME: implement
600     return JSStringCreateWithCharacters(0, 0);
601 }
602
603 JSRetainPtr<JSStringRef> AccessibilityUIElement::documentEncoding()
604 {
605     return JSStringCreateWithCharacters(0, 0);
606 }
607
608 JSRetainPtr<JSStringRef> AccessibilityUIElement::documentURI()
609 {
610     return JSStringCreateWithCharacters(0, 0);
611 }
612
613 JSRetainPtr<JSStringRef> AccessibilityUIElement::url()
614 {
615     return JSStringCreateWithCharacters(0, 0);
616 }
617
618 bool AccessibilityUIElement::addNotificationListener(JSValueRef functionCallback)
619 {
620     return false;
621 }
622
623 bool AccessibilityUIElement::removeNotificationListener()
624 {
625     return false;
626 }
627
628 bool AccessibilityUIElement::isFocusable() const
629 {
630     return false;
631 }
632
633 bool AccessibilityUIElement::isSelectable() const
634 {
635     // FIXME: implement
636     return false;
637 }
638
639 bool AccessibilityUIElement::isMultiSelectable() const
640 {
641     // FIXME: implement
642     return false;
643 }
644
645 bool AccessibilityUIElement::isVisible() const
646 {
647     // FIXME: implement
648     return false;
649 }
650
651 bool AccessibilityUIElement::isOffScreen() const
652 {
653     // FIXME: implement
654     return false;
655 }
656
657 bool AccessibilityUIElement::isCollapsed() const
658 {
659     // FIXME: implement
660     return false;
661 }
662
663 bool AccessibilityUIElement::isIgnored() const
664 {
665     return false;
666 }
667
668 bool AccessibilityUIElement::hasPopup() const
669 {
670     return false;
671 }
672
673 void AccessibilityUIElement::takeFocus()
674 {
675     // FIXME: implement
676 }
677
678 void AccessibilityUIElement::takeSelection()
679 {
680     // FIXME: implement
681 }
682
683 void AccessibilityUIElement::addSelection()
684 {
685     // FIXME: implement
686 }
687
688 void AccessibilityUIElement::removeSelection()
689 {
690     // FIXME: implement
691 }
692
693 // Text markers
694 PassRefPtr<AccessibilityTextMarkerRange> AccessibilityUIElement::lineTextMarkerRangeForTextMarker(AccessibilityTextMarker* textMarker)
695 {
696     return nullptr;
697 }
698
699 PassRefPtr<AccessibilityTextMarkerRange> AccessibilityUIElement::textMarkerRangeForElement(AccessibilityUIElement* element)
700 {
701     return 0;
702 }
703
704 int AccessibilityUIElement::textMarkerRangeLength(AccessibilityTextMarkerRange* range)
705 {
706     return 0;
707 }
708
709 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::previousTextMarker(AccessibilityTextMarker* textMarker)
710 {
711     return 0;
712 }
713
714 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::nextTextMarker(AccessibilityTextMarker* textMarker)
715 {
716     return 0;
717 }
718
719 JSRetainPtr<JSStringRef> AccessibilityUIElement::stringForTextMarkerRange(AccessibilityTextMarkerRange* markerRange)
720 {
721     return 0;
722 }
723
724 PassRefPtr<AccessibilityTextMarkerRange> AccessibilityUIElement::textMarkerRangeForMarkers(AccessibilityTextMarker* startMarker, AccessibilityTextMarker* endMarker)
725 {
726     return 0;
727 }
728
729 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::startTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange* range)
730 {
731     return 0;
732 }
733
734 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::endTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange* range)
735 {
736     return 0;
737 }
738
739 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::endTextMarkerForBounds(int x, int y, int width, int height)
740 {
741     return nullptr;
742 }
743
744 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::startTextMarkerForBounds(int x, int y, int width, int height)
745 {
746     return nullptr;
747 }
748
749 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::textMarkerForPoint(int x, int y)
750 {
751     return 0;
752 }
753
754 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::accessibilityElementForTextMarker(AccessibilityTextMarker* marker)
755 {
756     return 0;
757 }
758
759 bool AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute(JSStringRef attribute, AccessibilityTextMarkerRange* range)
760 {
761     return false;
762 }
763
764 int AccessibilityUIElement::indexForTextMarker(AccessibilityTextMarker* marker)
765 {
766     return -1;
767 }
768
769 bool AccessibilityUIElement::isTextMarkerValid(AccessibilityTextMarker* textMarker)
770 {
771     return false;
772 }
773
774 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::textMarkerForIndex(int textIndex)
775 {
776     return 0;
777 }
778
779 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::startTextMarker()
780 {
781     return nullptr;
782 }
783
784 PassRefPtr<AccessibilityTextMarker> AccessibilityUIElement::endTextMarker()
785 {
786     return nullptr;
787 }
788
789 JSRetainPtr<JSStringRef> AccessibilityUIElement::mathPostscriptsDescription() const
790 {
791     return 0;
792 }
793
794 JSRetainPtr<JSStringRef> AccessibilityUIElement::mathPrescriptsDescription() const
795 {
796     return 0;
797 }
798
799 JSRetainPtr<JSStringRef> AccessibilityUIElement::pathDescription() const
800 {
801     return 0;
802 }
803
804 JSRetainPtr<JSStringRef> AccessibilityUIElement::supportedActions() const
805 {
806     return 0;
807 }
808
809 } // namespace WTR
810