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 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) | 272 if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) |
273 return m_ariaRole; | 273 return m_ariaRole; |
274 | 274 |
275 Node* node = m_renderer->node(); | 275 Node* node = m_renderer->node(); |
276 RenderBoxModelObject* cssBox = renderBoxModelObject(); | 276 RenderBoxModelObject* cssBox = renderBoxModelObject(); |
277 | 277 |
278 if ((cssBox && cssBox->isListItem()) || isHTMLLIElement(node)) | 278 if ((cssBox && cssBox->isListItem()) || isHTMLLIElement(node)) |
279 return ListItemRole; | 279 return ListItemRole; |
280 if (m_renderer->isListMarker()) | 280 if (m_renderer->isListMarker()) |
281 return ListMarkerRole; | 281 return ListMarkerRole; |
| 282 if (m_renderer->isBR()) |
| 283 return LineBreakRole; |
282 if (isHTMLLegendElement(node)) | 284 if (isHTMLLegendElement(node)) |
283 return LegendRole; | 285 return LegendRole; |
284 if (m_renderer->isText()) | 286 if (m_renderer->isText()) |
285 return StaticTextRole; | 287 return StaticTextRole; |
286 if (cssBox && isImageOrAltText(cssBox, node)) { | 288 if (cssBox && isImageOrAltText(cssBox, node)) { |
287 if (node && node->isLink()) | 289 if (node && node->isLink()) |
288 return ImageMapRole; | 290 return ImageMapRole; |
289 if (isHTMLInputElement(node)) | 291 if (isHTMLInputElement(node)) |
290 return ariaHasPopup() ? PopUpButtonRole : ButtonRole; | 292 return ariaHasPopup() ? PopUpButtonRole : ButtonRole; |
291 if (isSVGImage()) | 293 if (isSVGImage()) |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 if (parent->isBoxModelObject() && toRenderBoxModelObject(parent)->isMenu
List()) | 579 if (parent->isBoxModelObject() && toRenderBoxModelObject(parent)->isMenu
List()) |
578 return true; | 580 return true; |
579 } | 581 } |
580 | 582 |
581 // find out if this element is inside of a label element. | 583 // find out if this element is inside of a label element. |
582 // if so, it may be ignored because it's the label for a checkbox or radio b
utton | 584 // if so, it may be ignored because it's the label for a checkbox or radio b
utton |
583 AXObject* controlObject = correspondingControlForLabelElement(); | 585 AXObject* controlObject = correspondingControlForLabelElement(); |
584 if (controlObject && !controlObject->exposesTitleUIElement() && controlObjec
t->isCheckboxOrRadio()) | 586 if (controlObject && !controlObject->exposesTitleUIElement() && controlObjec
t->isCheckboxOrRadio()) |
585 return true; | 587 return true; |
586 | 588 |
| 589 if (m_renderer->isBR()) |
| 590 return false; |
| 591 |
587 // NOTE: BRs always have text boxes now, so the text box check here can be r
emoved | 592 // NOTE: BRs always have text boxes now, so the text box check here can be r
emoved |
588 if (m_renderer->isText()) { | 593 if (m_renderer->isText()) { |
589 // static text beneath MenuItems and MenuButtons are just reported along
with the menu item, so it's ignored on an individual level | 594 // static text beneath MenuItems and MenuButtons are just reported along
with the menu item, so it's ignored on an individual level |
590 AXObject* parent = parentObjectUnignored(); | 595 AXObject* parent = parentObjectUnignored(); |
591 if (parent && (parent->ariaRoleAttribute() == MenuItemRole || parent->ar
iaRoleAttribute() == MenuButtonRole)) | 596 if (parent && (parent->ariaRoleAttribute() == MenuItemRole || parent->ar
iaRoleAttribute() == MenuButtonRole)) |
592 return true; | 597 return true; |
593 RenderText* renderText = toRenderText(m_renderer); | 598 RenderText* renderText = toRenderText(m_renderer); |
594 if (m_renderer->isBR() || !renderText->firstTextBox()) | 599 if (m_renderer->isBR() || !renderText->firstTextBox()) |
595 return true; | 600 return true; |
596 | 601 |
(...skipping 1811 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2408 if (label && label->renderer()) { | 2413 if (label && label->renderer()) { |
2409 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); | 2414 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); |
2410 result.unite(labelRect); | 2415 result.unite(labelRect); |
2411 } | 2416 } |
2412 } | 2417 } |
2413 | 2418 |
2414 return result; | 2419 return result; |
2415 } | 2420 } |
2416 | 2421 |
2417 } // namespace blink | 2422 } // namespace blink |
OLD | NEW |