Bug 139330 - AX: I cannot activate links on the mobile version of news.google.com
Summary: AX: I cannot activate links on the mobile version of news.google.com
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: chris fleizach
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2014-12-05 18:04 PST by chris fleizach
Modified: 2014-12-05 21:44 PST (History)
10 users (show)

See Also:


Attachments
patch (11.97 KB, patch)
2014-12-05 18:09 PST, chris fleizach
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description chris fleizach 2014-12-05 18:04:52 PST
If I visit news.google.com on iPhone with VOT enabled, the mobile version by default appears. If I touch Top Stories, swipe once to the right, then double tap to activate the first top story link, nothing ahppens. Turn off VO and do the same, you’ll be brought to the proper location, which may mean a new tab.
Comment 1 chris fleizach 2014-12-05 18:05:18 PST
This is because news.google only listens for touch events and ignores all other kinds of clicks.
we need to simulate a touch event
Comment 2 chris fleizach 2014-12-05 18:09:43 PST
Created attachment 242691 [details]
patch
Comment 3 Simon Fraser (smfr) 2014-12-05 19:04:53 PST
Comment on attachment 242691 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=242691&action=review

> Source/WebCore/platform/ios/PlatformEventFactoryIOS.mm:278
> +            PlatformTouchPoint::TouchPhaseType touchPhase;
> +            switch (type) {
> +            case PlatformEvent::TouchStart:
> +                touchPhase = PlatformTouchPoint::TouchPhaseBegan;
> +                break;
> +            case PlatformEvent::TouchMove:
> +                touchPhase = PlatformTouchPoint::TouchPhaseMoved;
> +                break;
> +            case PlatformEvent::TouchEnd:
> +                touchPhase = PlatformTouchPoint::TouchPhaseEnded;
> +                break;
> +            default:
> +                ASSERT_NOT_REACHED();
> +                break;
> +            }

Would be nice to pull this enum translation out into a small separate function.

> Source/WebCore/accessibility/AccessibilityObject.h:757
> +    virtual bool isDetachedFromParent() { return false; }

Is this relevant?

> LayoutTests/platform/ios-simulator/ios-accessibility/press-fires-touch-events.html:42
> +//    window.jsTestIsAsync = true;
> +
> +    if (window.accessibilityController) {
> +
> +        var button = accessibilityController.accessibleElementById("button");
> +        button.press();
> +    }
> +//    if (window.testRunner)
> +  //      testRunner.waitUntilDone();

You have some commented-out code here.
Comment 4 chris fleizach 2014-12-05 21:31:03 PST
(In reply to comment #3)
> Comment on attachment 242691 [details]
> patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=242691&action=review
> 
> > Source/WebCore/platform/ios/PlatformEventFactoryIOS.mm:278
> > +            PlatformTouchPoint::TouchPhaseType touchPhase;
> > +            switch (type) {
> > +            case PlatformEvent::TouchStart:
> > +                touchPhase = PlatformTouchPoint::TouchPhaseBegan;
> > +                break;
> > +            case PlatformEvent::TouchMove:
> > +                touchPhase = PlatformTouchPoint::TouchPhaseMoved;
> > +                break;
> > +            case PlatformEvent::TouchEnd:
> > +                touchPhase = PlatformTouchPoint::TouchPhaseEnded;
> > +                break;
> > +            default:
> > +                ASSERT_NOT_REACHED();
> > +                break;
> > +            }
> 
> Would be nice to pull this enum translation out into a small separate
> function.

Will do

> 
> > Source/WebCore/accessibility/AccessibilityObject.h:757
> > +    virtual bool isDetachedFromParent() { return false; }
> 
> Is this relevant?

Left over from another patch. Thanks.
> 
> > LayoutTests/platform/ios-simulator/ios-accessibility/press-fires-touch-events.html:42
> > +//    window.jsTestIsAsync = true;
> > +
> > +    if (window.accessibilityController) {
> > +
> > +        var button = accessibilityController.accessibleElementById("button");
> > +        button.press();
> > +    }
> > +//    if (window.testRunner)
> > +  //      testRunner.waitUntilDone();
> 
> You have some commented-out code here.

Thanks for review
Comment 5 chris fleizach 2014-12-05 21:44:06 PST
http://trac.webkit.org/changeset/176904