| 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 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 Node* node = m_renderer->node(); | 319 Node* node = m_renderer->node(); |
| 320 AccessibilityRole ariaRole = ariaRoleAttribute(); | 320 AccessibilityRole ariaRole = ariaRoleAttribute(); |
| 321 if (ariaRole != UnknownRole) | 321 if (ariaRole != UnknownRole) |
| 322 return ariaRole; | 322 return ariaRole; |
| 323 | 323 |
| 324 RenderBoxModelObject* cssBox = renderBoxModelObject(); | 324 RenderBoxModelObject* cssBox = renderBoxModelObject(); |
| 325 | 325 |
| 326 if (node && node->isLink()) { | 326 if (node && node->isLink()) { |
| 327 if (cssBox && cssBox->isImage()) | 327 if (cssBox && cssBox->isImage()) |
| 328 return ImageMapRole; | 328 return ImageMapRole; |
| 329 return WebCoreLinkRole; | 329 return LinkRole; |
| 330 } | 330 } |
| 331 if (cssBox && cssBox->isListItem()) | 331 if (cssBox && cssBox->isListItem()) |
| 332 return ListItemRole; | 332 return ListItemRole; |
| 333 if (m_renderer->isListMarker()) | 333 if (m_renderer->isListMarker()) |
| 334 return ListMarkerRole; | 334 return ListMarkerRole; |
| 335 if (node && node->hasTagName(buttonTag)) | 335 if (node && node->hasTagName(buttonTag)) |
| 336 return buttonRoleType(); | 336 return buttonRoleType(); |
| 337 if (node && node->hasTagName(legendTag)) | 337 if (node && node->hasTagName(legendTag)) |
| 338 return LegendRole; | 338 return LegendRole; |
| 339 if (m_renderer->isText()) | 339 if (m_renderer->isText()) |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 if (node && isHTMLLabelElement(node)) | 413 if (node && isHTMLLabelElement(node)) |
| 414 return LabelRole; | 414 return LabelRole; |
| 415 | 415 |
| 416 if (node && node->hasTagName(divTag)) | 416 if (node && node->hasTagName(divTag)) |
| 417 return DivRole; | 417 return DivRole; |
| 418 | 418 |
| 419 if (node && node->hasTagName(formTag)) | 419 if (node && node->hasTagName(formTag)) |
| 420 return FormRole; | 420 return FormRole; |
| 421 | 421 |
| 422 if (node && node->hasTagName(articleTag)) | 422 if (node && node->hasTagName(articleTag)) |
| 423 return DocumentArticleRole; | 423 return ArticleRole; |
| 424 | 424 |
| 425 if (node && node->hasTagName(mainTag)) | 425 if (node && node->hasTagName(mainTag)) |
| 426 return LandmarkMainRole; | 426 return MainRole; |
| 427 | 427 |
| 428 if (node && node->hasTagName(navTag)) | 428 if (node && node->hasTagName(navTag)) |
| 429 return LandmarkNavigationRole; | 429 return NavigationRole; |
| 430 | 430 |
| 431 if (node && node->hasTagName(asideTag)) | 431 if (node && node->hasTagName(asideTag)) |
| 432 return LandmarkComplementaryRole; | 432 return ComplementaryRole; |
| 433 | 433 |
| 434 if (node && node->hasTagName(sectionTag)) | 434 if (node && node->hasTagName(sectionTag)) |
| 435 return DocumentRegionRole; | 435 return RegionRole; |
| 436 | 436 |
| 437 if (node && node->hasTagName(addressTag)) | 437 if (node && node->hasTagName(addressTag)) |
| 438 return LandmarkContentInfoRole; | 438 return ContentInfoRole; |
| 439 | 439 |
| 440 // The HTML element should not be exposed as an element. That's what the Ren
derView element does. | 440 // The HTML element should not be exposed as an element. That's what the Ren
derView element does. |
| 441 if (node && isHTMLHtmlElement(node)) | 441 if (node && isHTMLHtmlElement(node)) |
| 442 return IgnoredRole; | 442 return IgnoredRole; |
| 443 | 443 |
| 444 // There should only be one banner/contentInfo per page. If header/footer ar
e being used within an article or section | 444 // There should only be one banner/contentInfo per page. If header/footer ar
e being used within an article or section |
| 445 // then it should not be exposed as whole page's banner/contentInfo | 445 // then it should not be exposed as whole page's banner/contentInfo |
| 446 if (node && node->hasTagName(headerTag) && !isDescendantOfElementType(articl
eTag) && !isDescendantOfElementType(sectionTag)) | 446 if (node && node->hasTagName(headerTag) && !isDescendantOfElementType(articl
eTag) && !isDescendantOfElementType(sectionTag)) |
| 447 return LandmarkBannerRole; | 447 return BannerRole; |
| 448 if (node && node->hasTagName(footerTag) && !isDescendantOfElementType(articl
eTag) && !isDescendantOfElementType(sectionTag)) | 448 if (node && node->hasTagName(footerTag) && !isDescendantOfElementType(articl
eTag) && !isDescendantOfElementType(sectionTag)) |
| 449 return FooterRole; | 449 return FooterRole; |
| 450 | 450 |
| 451 if (node && node->hasTagName(aTag) && isClickable()) | 451 if (node && node->hasTagName(aTag) && isClickable()) |
| 452 return WebCoreLinkRole; | 452 return LinkRole; |
| 453 | 453 |
| 454 if (m_renderer->isBlockFlow()) | 454 if (m_renderer->isBlockFlow()) |
| 455 return GroupRole; | 455 return GroupRole; |
| 456 | 456 |
| 457 // If the element does not have role, but it has ARIA attributes, accessibil
ity should fallback to exposing it as a group. | 457 // If the element does not have role, but it has ARIA attributes, accessibil
ity should fallback to exposing it as a group. |
| 458 if (supportsARIAAttributes()) | 458 if (supportsARIAAttributes()) |
| 459 return GroupRole; | 459 return GroupRole; |
| 460 | 460 |
| 461 return UnknownRole; | 461 return UnknownRole; |
| 462 } | 462 } |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 965 case ToggleButtonRole: | 965 case ToggleButtonRole: |
| 966 return AXButtonActionVerb(); | 966 return AXButtonActionVerb(); |
| 967 case TextFieldRole: | 967 case TextFieldRole: |
| 968 case TextAreaRole: | 968 case TextAreaRole: |
| 969 return AXTextFieldActionVerb(); | 969 return AXTextFieldActionVerb(); |
| 970 case RadioButtonRole: | 970 case RadioButtonRole: |
| 971 return AXRadioButtonActionVerb(); | 971 return AXRadioButtonActionVerb(); |
| 972 case CheckBoxRole: | 972 case CheckBoxRole: |
| 973 return isChecked() ? AXCheckedCheckBoxActionVerb() : AXUncheckedCheckBox
ActionVerb(); | 973 return isChecked() ? AXCheckedCheckBoxActionVerb() : AXUncheckedCheckBox
ActionVerb(); |
| 974 case LinkRole: | 974 case LinkRole: |
| 975 case WebCoreLinkRole: | |
| 976 return AXLinkActionVerb(); | 975 return AXLinkActionVerb(); |
| 977 default: | 976 default: |
| 978 return emptyString(); | 977 return emptyString(); |
| 979 } | 978 } |
| 980 } | 979 } |
| 981 | 980 |
| 982 void AccessibilityRenderObject::selectedChildren(AccessibilityChildrenVector& re
sult) | 981 void AccessibilityRenderObject::selectedChildren(AccessibilityChildrenVector& re
sult) |
| 983 { | 982 { |
| 984 ASSERT(result.isEmpty()); | 983 ASSERT(result.isEmpty()); |
| 985 | 984 |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1183 const AtomicString& AccessibilityRenderObject::ariaLiveRegionStatus() const | 1182 const AtomicString& AccessibilityRenderObject::ariaLiveRegionStatus() const |
| 1184 { | 1183 { |
| 1185 DEFINE_STATIC_LOCAL(const AtomicString, liveRegionStatusAssertive, ("asserti
ve", AtomicString::ConstructFromLiteral)); | 1184 DEFINE_STATIC_LOCAL(const AtomicString, liveRegionStatusAssertive, ("asserti
ve", AtomicString::ConstructFromLiteral)); |
| 1186 DEFINE_STATIC_LOCAL(const AtomicString, liveRegionStatusPolite, ("polite", A
tomicString::ConstructFromLiteral)); | 1185 DEFINE_STATIC_LOCAL(const AtomicString, liveRegionStatusPolite, ("polite", A
tomicString::ConstructFromLiteral)); |
| 1187 DEFINE_STATIC_LOCAL(const AtomicString, liveRegionStatusOff, ("off", AtomicS
tring::ConstructFromLiteral)); | 1186 DEFINE_STATIC_LOCAL(const AtomicString, liveRegionStatusOff, ("off", AtomicS
tring::ConstructFromLiteral)); |
| 1188 | 1187 |
| 1189 const AtomicString& liveRegionStatus = getAttribute(aria_liveAttr); | 1188 const AtomicString& liveRegionStatus = getAttribute(aria_liveAttr); |
| 1190 // These roles have implicit live region status. | 1189 // These roles have implicit live region status. |
| 1191 if (liveRegionStatus.isEmpty()) { | 1190 if (liveRegionStatus.isEmpty()) { |
| 1192 switch (roleValue()) { | 1191 switch (roleValue()) { |
| 1193 case ApplicationAlertDialogRole: | 1192 case AlertDialogRole: |
| 1194 case ApplicationAlertRole: | 1193 case AlertRole: |
| 1195 return liveRegionStatusAssertive; | 1194 return liveRegionStatusAssertive; |
| 1196 case ApplicationLogRole: | 1195 case LogRole: |
| 1197 case ApplicationStatusRole: | 1196 case StatusRole: |
| 1198 return liveRegionStatusPolite; | 1197 return liveRegionStatusPolite; |
| 1199 case ApplicationTimerRole: | 1198 case TimerRole: |
| 1200 case ApplicationMarqueeRole: | 1199 case MarqueeRole: |
| 1201 return liveRegionStatusOff; | 1200 return liveRegionStatusOff; |
| 1202 default: | 1201 default: |
| 1203 break; | 1202 break; |
| 1204 } | 1203 } |
| 1205 } | 1204 } |
| 1206 | 1205 |
| 1207 return liveRegionStatus; | 1206 return liveRegionStatus; |
| 1208 } | 1207 } |
| 1209 | 1208 |
| 1210 const AtomicString& AccessibilityRenderObject::ariaLiveRegionRelevant() const | 1209 const AtomicString& AccessibilityRenderObject::ariaLiveRegionRelevant() const |
| (...skipping 1306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2517 if (label && label->renderer()) { | 2516 if (label && label->renderer()) { |
| 2518 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); | 2517 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); |
| 2519 result.unite(labelRect); | 2518 result.unite(labelRect); |
| 2520 } | 2519 } |
| 2521 } | 2520 } |
| 2522 | 2521 |
| 2523 return result; | 2522 return result; |
| 2524 } | 2523 } |
| 2525 | 2524 |
| 2526 } // namespace WebCore | 2525 } // namespace WebCore |
| OLD | NEW |