OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2010 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 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 obj->notifyIfIgnoredValueChanged(); | 784 obj->notifyIfIgnoredValueChanged(); |
785 } | 785 } |
786 } | 786 } |
787 | 787 |
788 void AXObjectCache::handleAttributeChanged(const QualifiedName& attrName, Elemen
t* element) | 788 void AXObjectCache::handleAttributeChanged(const QualifiedName& attrName, Elemen
t* element) |
789 { | 789 { |
790 if (attrName == roleAttr) | 790 if (attrName == roleAttr) |
791 handleAriaRoleChanged(element); | 791 handleAriaRoleChanged(element); |
792 else if (attrName == altAttr || attrName == titleAttr) | 792 else if (attrName == altAttr || attrName == titleAttr) |
793 textChanged(element); | 793 textChanged(element); |
794 else if (attrName == forAttr && element->hasTagName(labelTag)) | 794 else if (attrName == forAttr && isHTMLLabelElement(element)) |
795 labelChanged(element); | 795 labelChanged(element); |
796 | 796 |
797 if (!attrName.localName().string().startsWith("aria-")) | 797 if (!attrName.localName().string().startsWith("aria-")) |
798 return; | 798 return; |
799 | 799 |
800 if (attrName == aria_activedescendantAttr) | 800 if (attrName == aria_activedescendantAttr) |
801 handleActiveDescendantChanged(element); | 801 handleActiveDescendantChanged(element); |
802 else if (attrName == aria_valuenowAttr || attrName == aria_valuetextAttr) | 802 else if (attrName == aria_valuenowAttr || attrName == aria_valuetextAttr) |
803 postNotification(element, AXObjectCache::AXValueChanged, true); | 803 postNotification(element, AXObjectCache::AXValueChanged, true); |
804 else if (attrName == aria_labelAttr || attrName == aria_labeledbyAttr || att
rName == aria_labelledbyAttr) | 804 else if (attrName == aria_labelAttr || attrName == aria_labeledbyAttr || att
rName == aria_labelledbyAttr) |
805 textChanged(element); | 805 textChanged(element); |
806 else if (attrName == aria_checkedAttr) | 806 else if (attrName == aria_checkedAttr) |
807 checkedStateChanged(element); | 807 checkedStateChanged(element); |
808 else if (attrName == aria_selectedAttr) | 808 else if (attrName == aria_selectedAttr) |
809 selectedChildrenChanged(element); | 809 selectedChildrenChanged(element); |
810 else if (attrName == aria_expandedAttr) | 810 else if (attrName == aria_expandedAttr) |
811 handleAriaExpandedChange(element); | 811 handleAriaExpandedChange(element); |
812 else if (attrName == aria_hiddenAttr) | 812 else if (attrName == aria_hiddenAttr) |
813 childrenChanged(element->parentNode()); | 813 childrenChanged(element->parentNode()); |
814 else if (attrName == aria_invalidAttr) | 814 else if (attrName == aria_invalidAttr) |
815 postNotification(element, AXObjectCache::AXInvalidStatusChanged, true); | 815 postNotification(element, AXObjectCache::AXInvalidStatusChanged, true); |
816 else | 816 else |
817 postNotification(element, AXObjectCache::AXAriaAttributeChanged, true); | 817 postNotification(element, AXObjectCache::AXAriaAttributeChanged, true); |
818 } | 818 } |
819 | 819 |
820 void AXObjectCache::labelChanged(Element* element) | 820 void AXObjectCache::labelChanged(Element* element) |
821 { | 821 { |
822 ASSERT(element->hasTagName(labelTag)); | 822 textChanged(toHTMLLabelElement(element)->control()); |
823 HTMLElement* correspondingControl = static_cast<HTMLLabelElement*>(element)-
>control(); | |
824 textChanged(correspondingControl); | |
825 } | 823 } |
826 | 824 |
827 void AXObjectCache::recomputeIsIgnored(RenderObject* renderer) | 825 void AXObjectCache::recomputeIsIgnored(RenderObject* renderer) |
828 { | 826 { |
829 if (AccessibilityObject* obj = get(renderer)) | 827 if (AccessibilityObject* obj = get(renderer)) |
830 obj->notifyIfIgnoredValueChanged(); | 828 obj->notifyIfIgnoredValueChanged(); |
831 } | 829 } |
832 | 830 |
833 void AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates() | 831 void AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates() |
834 { | 832 { |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1021 void AXObjectCache::handleScrolledToAnchor(const Node* anchorNode) | 1019 void AXObjectCache::handleScrolledToAnchor(const Node* anchorNode) |
1022 { | 1020 { |
1023 // The anchor node may not be accessible. Post the notification for the | 1021 // The anchor node may not be accessible. Post the notification for the |
1024 // first accessible object. | 1022 // first accessible object. |
1025 postPlatformNotification(AccessibilityObject::firstAccessibleObjectFromNode(
anchorNode), AXScrolledToAnchor); | 1023 postPlatformNotification(AccessibilityObject::firstAccessibleObjectFromNode(
anchorNode), AXScrolledToAnchor); |
1026 } | 1024 } |
1027 | 1025 |
1028 } // namespace WebCore | 1026 } // namespace WebCore |
1029 | 1027 |
1030 #endif // HAVE(ACCESSIBILITY) | 1028 #endif // HAVE(ACCESSIBILITY) |
OLD | NEW |