bool HTMLAnchorElement::isKeyboardFocusable(KeyboardEvent* event) const { if (!isLink()) return HTMLElement::isKeyboardFocusable(event); if (!isFocusable()) return false; if (!document().frame()) return false; if (!document().frame()->eventHandler().tabsToLinks(event)) return false; if (!renderer() && ancestorsOfType<HTMLCanvasElement>(*this).first()) return true; return hasNonEmptyBox(renderBoxModelObject()); }
bool HTMLAnchorElement::isKeyboardFocusable(KeyboardEvent* event) const { if (!isLink()) return HTMLElement::isKeyboardFocusable(event); if (!isFocusable()) return false; if (!document()->frame()) return false; if (!document()->frame()->eventHandler()->tabsToLinks(event)) return false; if (isInCanvasSubtree()) return true; return hasNonEmptyBox(renderBoxModelObject()); }