diff options
Diffstat (limited to 'WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp')
-rw-r--r-- | WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp | 121 |
1 files changed, 116 insertions, 5 deletions
diff --git a/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp b/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp index de3d9ff..163abb1 100644 --- a/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp +++ b/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp @@ -151,10 +151,24 @@ JSStringRef AccessibilityUIElement::role() VARIANT vRole; if (FAILED(m_element->get_accRole(self(), &vRole))) return JSStringCreateWithCharacters(0, 0); - ASSERT(V_VT(&vRole) == VT_I4); - TCHAR roleText[64] = {0}; - ::GetRoleText(V_I4(&vRole), roleText, ARRAYSIZE(roleText)); - return JSStringCreateWithCharacters(roleText, _tcslen(roleText)); + + ASSERT(V_VT(&vRole) == VT_I4 || V_VT(&vRole) == VT_BSTR); + + wstring result; + if (V_VT(&vRole) == VT_I4) { + unsigned roleTextLength = ::GetRoleText(V_I4(&vRole), 0, 0) + 1; + + Vector<TCHAR> roleText(roleTextLength); + + ::GetRoleText(V_I4(&vRole), roleText.data(), roleTextLength); + + result = roleText.data(); + } else if (V_VT(&vRole) == VT_BSTR) + result = wstring(V_BSTR(&vRole), ::SysStringLen(V_BSTR(&vRole))); + + ::VariantClear(&vRole); + + return JSStringCreateWithCharacters(result.data(), result.length()); } JSStringRef AccessibilityUIElement::subrole() @@ -162,6 +176,11 @@ JSStringRef AccessibilityUIElement::subrole() return 0; } +JSStringRef AccessibilityUIElement::roleDescription() +{ + return 0; +} + JSStringRef AccessibilityUIElement::title() { BSTR titleBSTR; @@ -175,13 +194,18 @@ JSStringRef AccessibilityUIElement::title() JSStringRef AccessibilityUIElement::description() { BSTR descriptionBSTR; - if (FAILED(m_element->get_accName(self(), &descriptionBSTR)) || !descriptionBSTR) + if (FAILED(m_element->get_accDescription(self(), &descriptionBSTR)) || !descriptionBSTR) return JSStringCreateWithCharacters(0, 0); wstring description(descriptionBSTR, SysStringLen(descriptionBSTR)); ::SysFreeString(descriptionBSTR); return JSStringCreateWithCharacters(description.data(), description.length()); } +JSStringRef AccessibilityUIElement::stringValue() +{ + return JSStringCreateWithCharacters(0, 0); +} + JSStringRef AccessibilityUIElement::language() { return JSStringCreateWithCharacters(0, 0); @@ -233,6 +257,35 @@ JSStringRef AccessibilityUIElement::valueDescription() { return 0; } +bool AccessibilityUIElement::isSelected() const +{ + return false; +} + +int AccessibilityUIElement::hierarchicalLevel() const +{ + return 0; +} + +bool AccessibilityUIElement::ariaIsGrabbed() const +{ + return false; +} + +JSStringRef AccessibilityUIElement::ariaDropEffects() const +{ + return 0; +} + +bool AccessibilityUIElement::isExpanded() const +{ + return false; +} + +JSStringRef AccessibilityUIElement::orientation() const +{ + return 0; +} double AccessibilityUIElement::intValue() { @@ -270,6 +323,7 @@ bool AccessibilityUIElement::isRequired() const return false; } + int AccessibilityUIElement::insertionPointLineNumber() { return 0; @@ -359,6 +413,11 @@ bool AccessibilityUIElement::isAttributeSettable(JSStringRef attribute) return false; } +bool AccessibilityUIElement::isAttributeSupported(JSStringRef attribute) +{ + return false; +} + void AccessibilityUIElement::increment() { } @@ -366,3 +425,55 @@ void AccessibilityUIElement::increment() void AccessibilityUIElement::decrement() { } + +void AccessibilityUIElement::showMenu() +{ +} + +AccessibilityUIElement AccessibilityUIElement::disclosedRowAtIndex(unsigned index) +{ + return 0; +} + +AccessibilityUIElement AccessibilityUIElement::ariaOwnsElementAtIndex(unsigned index) +{ + return 0; +} + +AccessibilityUIElement AccessibilityUIElement::ariaFlowToElementAtIndex(unsigned index) +{ + return 0; +} + +AccessibilityUIElement AccessibilityUIElement::selectedRowAtIndex(unsigned index) +{ + return 0; +} + +AccessibilityUIElement AccessibilityUIElement::disclosedByRow() +{ + return 0; +} + +JSStringRef AccessibilityUIElement::accessibilityValue() const +{ + BSTR valueBSTR; + if (FAILED(m_element->get_accValue(self(), &valueBSTR)) || !valueBSTR) + return JSStringCreateWithCharacters(0, 0); + + wstring value(valueBSTR, SysStringLen(valueBSTR)); + ::SysFreeString(valueBSTR); + + return JSStringCreateWithCharacters(value.data(), value.length()); +} + + +JSStringRef AccessibilityUIElement::documentEncoding() +{ + return JSStringCreateWithCharacters(0, 0); +} + +JSStringRef AccessibilityUIElement::documentURI() +{ + return JSStringCreateWithCharacters(0, 0); +} |