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