void AccessibilityController::reset()
{
    m_rootElement = WebAccessibilityObject();
    m_focusedElement = WebAccessibilityObject();
    m_elements.clear();

    m_logAccessibilityEvents = false;
}
WebAccessibilityObject WebAccessibilityCacheImpl::getObjectById(int id)
{
    ObjectMap::iterator it = m_objectMap.find(id);

    if (it == m_objectMap.end() || !it->second)
        return WebAccessibilityObject();

    return WebAccessibilityObject(it->second->accessibilityObject());
}
Beispiel #3
0
WebAccessibilityObject WebDocument::accessibilityObjectFromID(int axID) const
{
#if HAVE(ACCESSIBILITY)
    const Document* document = constUnwrap<Document>();
    return WebAccessibilityObject(
        document->axObjectCache()->objectFromAXID(axID));
#else
    return WebAccessibilityObject();
#endif
}
Beispiel #4
0
WebAccessibilityObject WebDocument::accessibilityObject() const
{
#if HAVE(ACCESSIBILITY)
    const Document* document = constUnwrap<Document>();
    return WebAccessibilityObject(
        document->axObjectCache()->getOrCreate(document->renderer()));
#else
    return WebAccessibilityObject();
#endif
}
void ChromeClientImpl::focusedNodeChanged(Node* node)
{
    m_webView->client()->focusedNodeChanged(WebNode(node));

    WebURL focusURL;
    if (node && node->isLink()) {
        // This HitTestResult hack is the easiest way to get a link URL out of a
        // WebCore::Node.
        HitTestResult hitTest(IntPoint(0, 0));
        // This cast must be valid because of the isLink() check.
        hitTest.setURLElement(static_cast<Element*>(node));
        if (hitTest.isLiveLink())
            focusURL = hitTest.absoluteLinkURL();
    }
    m_webView->client()->setKeyboardFocusURL(focusURL);
    
    if (!node)
        return;

    // If accessibility is enabled, we should notify assistive technology that
    // the active AccessibilityObject changed.
    Document* document = node->document();
    if (!document) {
        ASSERT_NOT_REACHED();
        return;
    } 
    if (document && document->axObjectCache()->accessibilityEnabled()) {
        // Retrieve the focused AccessibilityObject.
        AccessibilityObject* focusedAccObj =
            document->axObjectCache()->getOrCreate(node->renderer());

        // Alert assistive technology that focus changed.
        if (focusedAccObj)
            m_webView->client()->focusAccessibilityObject(WebAccessibilityObject(focusedAccObj));
    }
}
Beispiel #6
0
WebAccessibilityObject WebDocument::accessibilityObjectFromID(int axID) const
{
    const Document* document = constUnwrap<Document>();
    return WebAccessibilityObject(
        document->axObjectCache()->objectFromAXID(axID));
}
Beispiel #7
0
WebAccessibilityObject WebDocument::accessibilityObject() const
{
    const Document* document = constUnwrap<Document>();
    return WebAccessibilityObject(
        document->axObjectCache()->getOrCreate(document->renderer()));
}
Beispiel #8
0
void ChromeClientImpl::postAccessibilityNotification(AccessibilityObject* obj, AXObjectCache::AXNotification notification)
{
    // Alert assistive technology about the accessibility object notification.
    if (obj)
        m_webView->client()->postAccessibilityNotification(WebAccessibilityObject(obj), toWebAccessibilityNotification(notification));
}
void ChromeClientImpl::didChangeAccessibilityObjectChildren(WebCore::AccessibilityObject* obj)
{
    // Alert assistive technology about the accessibility object children change
    if (obj)
        m_webView->client()->didChangeAccessibilityObjectChildren(WebAccessibilityObject(obj));
}
void ChromeClientImpl::didChangeAccessibilityObjectState(AccessibilityObject* obj)
{
    // Alert assistive technology about the accessibility object state change
    if (obj)
        m_webView->client()->didChangeAccessibilityObjectState(WebAccessibilityObject(obj));
}