| 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 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 { | 263 { |
| 264 if (!m_renderer) | 264 if (!m_renderer) |
| 265 return 0; | 265 return 0; |
| 266 | 266 |
| 267 // the control element should not be considered part of the label | 267 // the control element should not be considered part of the label |
| 268 if (isControl()) | 268 if (isControl()) |
| 269 return 0; | 269 return 0; |
| 270 | 270 |
| 271 // find if this has a parent that is a label | 271 // find if this has a parent that is a label |
| 272 for (Node* parentNode = m_renderer->node(); parentNode; parentNode = parentN
ode->parentNode()) { | 272 for (Node* parentNode = m_renderer->node(); parentNode; parentNode = parentN
ode->parentNode()) { |
| 273 if (parentNode->hasTagName(labelTag)) | 273 if (isHTMLLabelElement(parentNode)) |
| 274 return static_cast<HTMLLabelElement*>(parentNode); | 274 return toHTMLLabelElement(parentNode); |
| 275 } | 275 } |
| 276 | 276 |
| 277 return 0; | 277 return 0; |
| 278 } | 278 } |
| 279 | 279 |
| 280 bool AccessibilityRenderObject::shouldNotifyActiveDescendant() const | 280 bool AccessibilityRenderObject::shouldNotifyActiveDescendant() const |
| 281 { | 281 { |
| 282 // We want to notify that the combo box has changed its active descendant, | 282 // We want to notify that the combo box has changed its active descendant, |
| 283 // but we do not want to change the focus, because focus should remain with
the combo box. | 283 // but we do not want to change the focus, because focus should remain with
the combo box. |
| 284 if (isComboBox()) | 284 if (isComboBox()) |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 // Table sections should be ignored. | 397 // Table sections should be ignored. |
| 398 if (m_renderer->isTableSection()) | 398 if (m_renderer->isTableSection()) |
| 399 return IgnoredRole; | 399 return IgnoredRole; |
| 400 | 400 |
| 401 if (m_renderer->isHR()) | 401 if (m_renderer->isHR()) |
| 402 return HorizontalRuleRole; | 402 return HorizontalRuleRole; |
| 403 | 403 |
| 404 if (node && node->hasTagName(pTag)) | 404 if (node && node->hasTagName(pTag)) |
| 405 return ParagraphRole; | 405 return ParagraphRole; |
| 406 | 406 |
| 407 if (node && node->hasTagName(labelTag)) | 407 if (node && isHTMLLabelElement(node)) |
| 408 return LabelRole; | 408 return LabelRole; |
| 409 | 409 |
| 410 if (node && node->hasTagName(divTag)) | 410 if (node && node->hasTagName(divTag)) |
| 411 return DivRole; | 411 return DivRole; |
| 412 | 412 |
| 413 if (node && node->hasTagName(formTag)) | 413 if (node && node->hasTagName(formTag)) |
| 414 return FormRole; | 414 return FormRole; |
| 415 | 415 |
| 416 if (node && node->hasTagName(articleTag)) | 416 if (node && node->hasTagName(articleTag)) |
| 417 return DocumentArticleRole; | 417 return DocumentArticleRole; |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 | 718 |
| 719 // all controls are accessible | 719 // all controls are accessible |
| 720 if (isControl()) | 720 if (isControl()) |
| 721 return false; | 721 return false; |
| 722 | 722 |
| 723 if (ariaRoleAttribute() != UnknownRole) | 723 if (ariaRoleAttribute() != UnknownRole) |
| 724 return false; | 724 return false; |
| 725 | 725 |
| 726 // don't ignore labels, because they serve as TitleUIElements | 726 // don't ignore labels, because they serve as TitleUIElements |
| 727 Node* node = m_renderer->node(); | 727 Node* node = m_renderer->node(); |
| 728 if (node && node->hasTagName(labelTag)) | 728 if (node && isHTMLLabelElement(node)) |
| 729 return false; | 729 return false; |
| 730 | 730 |
| 731 // Anything that is content editable should not be ignored. | 731 // Anything that is content editable should not be ignored. |
| 732 // However, one cannot just call node->rendererIsEditable() since that will
ask if its parents | 732 // However, one cannot just call node->rendererIsEditable() since that will
ask if its parents |
| 733 // are also editable. Only the top level content editable region should be e
xposed. | 733 // are also editable. Only the top level content editable region should be e
xposed. |
| 734 if (hasContentEditableAttributeSet()) | 734 if (hasContentEditableAttributeSet()) |
| 735 return false; | 735 return false; |
| 736 | 736 |
| 737 // List items play an important role in defining the structure of lists. The
y should not be ignored. | 737 // List items play an important role in defining the structure of lists. The
y should not be ignored. |
| 738 if (roleValue() == ListItemRole) | 738 if (roleValue() == ListItemRole) |
| (...skipping 1772 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 |