| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012, Google Inc. All rights reserved. | 2 * Copyright (C) 2012, Google 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 1605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1616 // called during render layouts, minimal work should be done. | 1616 // called during render layouts, minimal work should be done. |
| 1617 // If AX elements are created now, they could interrogate the render tree wh
ile it's in a funky state. | 1617 // If AX elements are created now, they could interrogate the render tree wh
ile it's in a funky state. |
| 1618 // At the same time, process ARIA live region changes. | 1618 // At the same time, process ARIA live region changes. |
| 1619 for (AXObject* parent = this; parent; parent = parent->parentObjectIfExists(
)) { | 1619 for (AXObject* parent = this; parent; parent = parent->parentObjectIfExists(
)) { |
| 1620 parent->setNeedsToUpdateChildren(); | 1620 parent->setNeedsToUpdateChildren(); |
| 1621 | 1621 |
| 1622 // These notifications always need to be sent because screenreaders are
reliant on them to perform. | 1622 // These notifications always need to be sent because screenreaders are
reliant on them to perform. |
| 1623 // In other words, they need to be sent even when the screen reader has
not accessed this live region since the last update. | 1623 // In other words, they need to be sent even when the screen reader has
not accessed this live region since the last update. |
| 1624 | 1624 |
| 1625 // If this element supports ARIA live regions, then notify the AT of cha
nges. | 1625 // If this element supports ARIA live regions, then notify the AT of cha
nges. |
| 1626 if (parent->supportsARIALiveRegion()) | 1626 if (parent->isLiveRegion()) |
| 1627 axObjectCache()->postNotification(parent, parent->document(), AXObje
ctCacheImpl::AXLiveRegionChanged, true); | 1627 axObjectCache()->postNotification(parent, parent->document(), AXObje
ctCacheImpl::AXLiveRegionChanged, true); |
| 1628 | 1628 |
| 1629 // If this element is an ARIA text box or content editable, post a "valu
e changed" notification on it | 1629 // If this element is an ARIA text box or content editable, post a "valu
e changed" notification on it |
| 1630 // so that it behaves just like a native input element or textarea. | 1630 // so that it behaves just like a native input element or textarea. |
| 1631 if (isNonNativeTextControl()) | 1631 if (isNonNativeTextControl()) |
| 1632 axObjectCache()->postNotification(parent, parent->document(), AXObje
ctCacheImpl::AXValueChanged, true); | 1632 axObjectCache()->postNotification(parent, parent->document(), AXObje
ctCacheImpl::AXValueChanged, true); |
| 1633 } | 1633 } |
| 1634 } | 1634 } |
| 1635 | 1635 |
| 1636 void AXNodeObject::selectionChanged() | 1636 void AXNodeObject::selectionChanged() |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1647 void AXNodeObject::textChanged() | 1647 void AXNodeObject::textChanged() |
| 1648 { | 1648 { |
| 1649 // If this element supports ARIA live regions, or is part of a region with a
n ARIA editable role, | 1649 // If this element supports ARIA live regions, or is part of a region with a
n ARIA editable role, |
| 1650 // then notify the AT of changes. | 1650 // then notify the AT of changes. |
| 1651 AXObjectCacheImpl* cache = axObjectCache(); | 1651 AXObjectCacheImpl* cache = axObjectCache(); |
| 1652 for (Node* parentNode = node(); parentNode; parentNode = parentNode->parentN
ode()) { | 1652 for (Node* parentNode = node(); parentNode; parentNode = parentNode->parentN
ode()) { |
| 1653 AXObject* parent = cache->get(parentNode); | 1653 AXObject* parent = cache->get(parentNode); |
| 1654 if (!parent) | 1654 if (!parent) |
| 1655 continue; | 1655 continue; |
| 1656 | 1656 |
| 1657 if (parent->supportsARIALiveRegion()) | 1657 if (parent->isLiveRegion()) |
| 1658 cache->postNotification(parentNode, AXObjectCacheImpl::AXLiveRegionC
hanged, true); | 1658 cache->postNotification(parentNode, AXObjectCacheImpl::AXLiveRegionC
hanged, true); |
| 1659 | 1659 |
| 1660 // If this element is an ARIA text box or content editable, post a "valu
e changed" notification on it | 1660 // If this element is an ARIA text box or content editable, post a "valu
e changed" notification on it |
| 1661 // so that it behaves just like a native input element or textarea. | 1661 // so that it behaves just like a native input element or textarea. |
| 1662 if (parent->isNonNativeTextControl()) | 1662 if (parent->isNonNativeTextControl()) |
| 1663 cache->postNotification(parentNode, AXObjectCacheImpl::AXValueChange
d, true); | 1663 cache->postNotification(parentNode, AXObjectCacheImpl::AXValueChange
d, true); |
| 1664 } | 1664 } |
| 1665 } | 1665 } |
| 1666 | 1666 |
| 1667 void AXNodeObject::updateAccessibilityRole() | 1667 void AXNodeObject::updateAccessibilityRole() |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1760 float range = maxValueForRange() - minValueForRange(); | 1760 float range = maxValueForRange() - minValueForRange(); |
| 1761 float value = valueForRange(); | 1761 float value = valueForRange(); |
| 1762 | 1762 |
| 1763 value += range * (percentChange / 100); | 1763 value += range * (percentChange / 100); |
| 1764 setValue(String::number(value)); | 1764 setValue(String::number(value)); |
| 1765 | 1765 |
| 1766 axObjectCache()->postNotification(node(), AXObjectCacheImpl::AXValueChanged,
true); | 1766 axObjectCache()->postNotification(node(), AXObjectCacheImpl::AXValueChanged,
true); |
| 1767 } | 1767 } |
| 1768 | 1768 |
| 1769 } // namespace blink | 1769 } // namespace blink |
| OLD | NEW |