AccessibilityUIElement AccessibilityController::focusedElement() { COMPtr<IAccessible> rootAccessible = rootElement().platformUIElement(); VARIANT vFocus; if (FAILED(rootAccessible->get_accFocus(&vFocus))) return 0; if (V_VT(&vFocus) == VT_I4) { ASSERT(V_I4(&vFocus) == CHILDID_SELF); // The root accessible object is the focused object. return rootAccessible; } ASSERT(V_VT(&vFocus) == VT_DISPATCH); // We have an IDispatch; query for IAccessible. return COMPtr<IAccessible>(Query, V_DISPATCH(&vFocus)); }