OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 // Mozilla considers linkable. | 504 // Mozilla considers linkable. |
505 return object.isLink() || object.isImage() || object.renderer()->isText(); | 505 return object.isLink() || object.isImage() || object.renderer()->isText(); |
506 } | 506 } |
507 | 507 |
508 bool AccessibilityRenderObject::isLinked() const | 508 bool AccessibilityRenderObject::isLinked() const |
509 { | 509 { |
510 if (!isLinkable(*this)) | 510 if (!isLinkable(*this)) |
511 return false; | 511 return false; |
512 | 512 |
513 Element* anchor = anchorElement(); | 513 Element* anchor = anchorElement(); |
514 if (!anchor || !anchor->hasTagName(aTag)) | 514 if (!anchor || !isHTMLAnchorElement(anchor)) |
515 return false; | 515 return false; |
516 | 516 |
517 return !static_cast<HTMLAnchorElement*>(anchor)->href().isEmpty(); | 517 return !toHTMLAnchorElement(anchor)->href().isEmpty(); |
518 } | 518 } |
519 | 519 |
520 bool AccessibilityRenderObject::isLoaded() const | 520 bool AccessibilityRenderObject::isLoaded() const |
521 { | 521 { |
522 return !m_renderer->document()->parser(); | 522 return !m_renderer->document()->parser(); |
523 } | 523 } |
524 | 524 |
525 bool AccessibilityRenderObject::isOffScreen() const | 525 bool AccessibilityRenderObject::isOffScreen() const |
526 { | 526 { |
527 ASSERT(m_renderer); | 527 ASSERT(m_renderer); |
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 return 0; | 921 return 0; |
922 HTMLLabelElement* label = labelForElement(toElement(node)); | 922 HTMLLabelElement* label = labelForElement(toElement(node)); |
923 if (label && label->renderer()) | 923 if (label && label->renderer()) |
924 return axObjectCache()->getOrCreate(label); | 924 return axObjectCache()->getOrCreate(label); |
925 | 925 |
926 return 0; | 926 return 0; |
927 } | 927 } |
928 | 928 |
929 KURL AccessibilityRenderObject::url() const | 929 KURL AccessibilityRenderObject::url() const |
930 { | 930 { |
931 if (isAnchor() && m_renderer->node()->hasTagName(aTag)) { | 931 if (isAnchor() && isHTMLAnchorElement(m_renderer->node())) { |
932 if (HTMLAnchorElement* anchor = static_cast<HTMLAnchorElement*>(anchorEl
ement())) | 932 if (HTMLAnchorElement* anchor = toHTMLAnchorElement(anchorElement())) |
933 return anchor->href(); | 933 return anchor->href(); |
934 } | 934 } |
935 | 935 |
936 if (isWebArea()) | 936 if (isWebArea()) |
937 return m_renderer->document()->url(); | 937 return m_renderer->document()->url(); |
938 | 938 |
939 if (isImage() && m_renderer->node() && m_renderer->node()->hasTagName(imgTag
)) | 939 if (isImage() && m_renderer->node() && m_renderer->node()->hasTagName(imgTag
)) |
940 return toHTMLImageElement(m_renderer->node())->src(); | 940 return toHTMLImageElement(m_renderer->node())->src(); |
941 | 941 |
942 if (isInputImage()) | 942 if (isInputImage()) |
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1657 } | 1657 } |
1658 | 1658 |
1659 // bail if none found | 1659 // bail if none found |
1660 if (!currRenderer) | 1660 if (!currRenderer) |
1661 return 0; | 1661 return 0; |
1662 | 1662 |
1663 // search up the DOM tree for an anchor element | 1663 // search up the DOM tree for an anchor element |
1664 // NOTE: this assumes that any non-image with an anchor is an HTMLAnchorElem
ent | 1664 // NOTE: this assumes that any non-image with an anchor is an HTMLAnchorElem
ent |
1665 Node* node = currRenderer->node(); | 1665 Node* node = currRenderer->node(); |
1666 for ( ; node; node = node->parentNode()) { | 1666 for ( ; node; node = node->parentNode()) { |
1667 if (node->hasTagName(aTag) || (node->renderer() && cache->getOrCreate(no
de->renderer())->isAnchor())) | 1667 if (isHTMLAnchorElement(node) || (node->renderer() && cache->getOrCreate
(node->renderer())->isAnchor())) |
1668 return toElement(node); | 1668 return toElement(node); |
1669 } | 1669 } |
1670 | 1670 |
1671 return 0; | 1671 return 0; |
1672 } | 1672 } |
1673 | 1673 |
1674 Widget* AccessibilityRenderObject::widgetForAttachmentView() const | 1674 Widget* AccessibilityRenderObject::widgetForAttachmentView() const |
1675 { | 1675 { |
1676 if (!isAttachment()) | 1676 if (!isAttachment()) |
1677 return 0; | 1677 return 0; |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2076 return false; | 2076 return false; |
2077 } | 2077 } |
2078 | 2078 |
2079 AccessibilityObject* AccessibilityRenderObject::internalLinkElement() const | 2079 AccessibilityObject* AccessibilityRenderObject::internalLinkElement() const |
2080 { | 2080 { |
2081 Element* element = anchorElement(); | 2081 Element* element = anchorElement(); |
2082 if (!element) | 2082 if (!element) |
2083 return 0; | 2083 return 0; |
2084 | 2084 |
2085 // Right now, we do not support ARIA links as internal link elements | 2085 // Right now, we do not support ARIA links as internal link elements |
2086 if (!element->hasTagName(aTag)) | 2086 if (!isHTMLAnchorElement(element)) |
2087 return 0; | 2087 return 0; |
2088 HTMLAnchorElement* anchor = static_cast<HTMLAnchorElement*>(element); | 2088 HTMLAnchorElement* anchor = toHTMLAnchorElement(element); |
2089 | 2089 |
2090 KURL linkURL = anchor->href(); | 2090 KURL linkURL = anchor->href(); |
2091 String fragmentIdentifier = linkURL.fragmentIdentifier(); | 2091 String fragmentIdentifier = linkURL.fragmentIdentifier(); |
2092 if (fragmentIdentifier.isEmpty()) | 2092 if (fragmentIdentifier.isEmpty()) |
2093 return 0; | 2093 return 0; |
2094 | 2094 |
2095 // check if URL is the same as current URL | 2095 // check if URL is the same as current URL |
2096 KURL documentURL = m_renderer->document()->url(); | 2096 KURL documentURL = m_renderer->document()->url(); |
2097 if (!equalIgnoringFragmentIdentifier(documentURL, linkURL)) | 2097 if (!equalIgnoringFragmentIdentifier(documentURL, linkURL)) |
2098 return 0; | 2098 return 0; |
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2511 if (label && label->renderer()) { | 2511 if (label && label->renderer()) { |
2512 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); | 2512 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); |
2513 result.unite(labelRect); | 2513 result.unite(labelRect); |
2514 } | 2514 } |
2515 } | 2515 } |
2516 | 2516 |
2517 return result; | 2517 return result; |
2518 } | 2518 } |
2519 | 2519 |
2520 } // namespace WebCore | 2520 } // namespace WebCore |
OLD | NEW |