Element* TreeScope::getElementByAccessKey(const String& key) const { if (key.isEmpty()) return 0; Element* result = 0; Node& root = rootNode(); for (Element& element : ElementTraversal::descendantsOf(root)) { if (equalIgnoringCase(element.fastGetAttribute(accesskeyAttr), key)) result = &element; for (ShadowRoot* shadowRoot = element.youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot()) { if (Element* shadowResult = shadowRoot->getElementByAccessKey(key)) result = shadowResult; } } return result; }
Element* TreeScope::getElementByAccessKey(const String& key) const { if (key.isEmpty()) return 0; Element* result = 0; Node* root = rootNode(); for (Element* element = ElementTraversal::firstWithin(root); element; element = ElementTraversal::next(element, root)) { if (element->fastGetAttribute(accesskeyAttr) == key) result = element; for (ShadowRoot* shadowRoot = element->youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot()) { if (Element* shadowResult = shadowRoot->getElementByAccessKey(key)) result = shadowResult; } } return result; }
Element* TreeScope::getElementByAccessKey(const String& key) const { if (key.isEmpty()) return 0; Element* result = 0; Node& root = rootNode(); for (Element* element = ElementTraversal::firstWithin(root); element; element = ElementTraversal::next(*element, &root)) { if (equalIgnoringCase(element->getAttribute(HTMLNames::accesskeyAttr), key)) result = element; for (ShadowRoot* shadowRoot = element->youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot()) { if (Element* shadowResult = shadowRoot->getElementByAccessKey(key)) result = shadowResult; } } return result; }