Title: [185573] trunk/Source/WebCore
- Revision
- 185573
- Author
- [email protected]
- Date
- 2015-06-15 17:40:29 -0700 (Mon, 15 Jun 2015)
Log Message
AX: Changing state of radio buttons causes VoiceOver to go busy for a short time.
https://bugs.webkit.org/show_bug.cgi?id=145933
Reviewed by Dean Jackson.
When radio buttons animate the new focus selection state, the thread activity looks a lot like short burst of
activity to draw, then wait on CoreAnimation to apply those changes.
Since those periods of activity during animation are so short, VoiceOver is not able to query for all the
attributes it needs, and gets stuck in the queue behind rendering.
The fix here is to turn off button state animations while VoiceOver is running.
* platform/mac/ThemeMac.mm:
(WebCore::updateStates):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (185572 => 185573)
--- trunk/Source/WebCore/ChangeLog 2015-06-15 23:56:48 UTC (rev 185572)
+++ trunk/Source/WebCore/ChangeLog 2015-06-16 00:40:29 UTC (rev 185573)
@@ -1,3 +1,21 @@
+2015-06-15 Chris Fleizach <[email protected]>
+
+ AX: Changing state of radio buttons causes VoiceOver to go busy for a short time.
+ https://bugs.webkit.org/show_bug.cgi?id=145933
+
+ Reviewed by Dean Jackson.
+
+ When radio buttons animate the new focus selection state, the thread activity looks a lot like short burst of
+ activity to draw, then wait on CoreAnimation to apply those changes.
+
+ Since those periods of activity during animation are so short, VoiceOver is not able to query for all the
+ attributes it needs, and gets stuck in the queue behind rendering.
+
+ The fix here is to turn off button state animations while VoiceOver is running.
+
+ * platform/mac/ThemeMac.mm:
+ (WebCore::updateStates):
+
2015-06-15 Zalan Bujtas <[email protected]>
RootInlineBox::m_lineBreakObj becomes invalid when a child renderer is removed and the line does not get marked dirty.
Modified: trunk/Source/WebCore/platform/mac/ThemeMac.mm (185572 => 185573)
--- trunk/Source/WebCore/platform/mac/ThemeMac.mm 2015-06-15 23:56:48 UTC (rev 185572)
+++ trunk/Source/WebCore/platform/mac/ThemeMac.mm 2015-06-16 00:40:29 UTC (rev 185573)
@@ -26,6 +26,7 @@
#import "config.h"
#import "ThemeMac.h"
+#import "AXObjectCache.h"
#import "BlockExceptions.h"
#import "GraphicsContext.h"
#import "LocalCurrentGraphicsContext.h"
@@ -194,6 +195,12 @@
#if __MAC_OS_X_VERSION_MIN_REQUIRED < 101000
UNUSED_PARAM(useAnimation);
#endif
+
+ // The animated state cause this thread to start and stop repeatedly on CoreAnimation synchronize calls.
+ // This short burts of activity in between are not long enough for VoiceOver to retrieve accessibility attributes and makes the process appear unresponsive.
+ if (AXObjectCache::accessibilityEnhancedUserInterfaceEnabled())
+ useAnimation = false;
+
ControlStates::States states = controlStates->states();
// Hover state is not supported by Aqua.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes