OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2011 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 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 return IgnoreObject; | 282 return IgnoreObject; |
283 | 283 |
284 if (isPresentationalChildOfAriaRole()) | 284 if (isPresentationalChildOfAriaRole()) |
285 return IgnoreObject; | 285 return IgnoreObject; |
286 | 286 |
287 return accessibilityPlatformIncludesObject(); | 287 return accessibilityPlatformIncludesObject(); |
288 } | 288 } |
289 | 289 |
290 bool AXObject::isInertOrAriaHidden() const | 290 bool AXObject::isInertOrAriaHidden() const |
291 { | 291 { |
292 if (equalIgnoringCase(getAttribute(aria_hiddenAttr), "true")) | 292 bool mightBeInInertSubtree = true; |
293 return true; | 293 for (const AXObject* object = this; object; object = object->parentObject())
{ |
294 if (node() && node()->isInert()) | |
295 return true; | |
296 | |
297 for (AXObject* object = parentObject(); object; object = object->parentObjec
t()) { | |
298 if (equalIgnoringCase(object->getAttribute(aria_hiddenAttr), "true")) | 294 if (equalIgnoringCase(object->getAttribute(aria_hiddenAttr), "true")) |
299 return true; | 295 return true; |
| 296 if (mightBeInInertSubtree && object->node()) { |
| 297 if (object->node()->isInert()) |
| 298 return true; |
| 299 mightBeInInertSubtree = false; |
| 300 } |
300 } | 301 } |
301 | 302 |
302 return false; | 303 return false; |
303 } | 304 } |
304 | 305 |
305 bool AXObject::lastKnownIsIgnoredValue() | 306 bool AXObject::lastKnownIsIgnoredValue() |
306 { | 307 { |
307 if (m_lastKnownIsIgnoredValue == DefaultBehavior) | 308 if (m_lastKnownIsIgnoredValue == DefaultBehavior) |
308 m_lastKnownIsIgnoredValue = accessibilityIsIgnored() ? IgnoreObject : In
cludeObject; | 309 m_lastKnownIsIgnoredValue = accessibilityIsIgnored() ? IgnoreObject : In
cludeObject; |
309 | 310 |
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 return ToggleButtonRole; | 898 return ToggleButtonRole; |
898 if (ariaHasPopup()) | 899 if (ariaHasPopup()) |
899 return PopUpButtonRole; | 900 return PopUpButtonRole; |
900 // We don't contemplate RadioButtonRole, as it depends on the input | 901 // We don't contemplate RadioButtonRole, as it depends on the input |
901 // type. | 902 // type. |
902 | 903 |
903 return ButtonRole; | 904 return ButtonRole; |
904 } | 905 } |
905 | 906 |
906 } // namespace WebCore | 907 } // namespace WebCore |
OLD | NEW |