<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AX: Provide API for assistive tech to ignore DOM key event handlers"
   href="https://bugs.webkit.org/show_bug.cgi?id=142059#c8">Comment # 8</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AX: Provide API for assistive tech to ignore DOM key event handlers"
   href="https://bugs.webkit.org/show_bug.cgi?id=142059">bug 142059</a>
              from <span class="vcard"><a class="email" href="mailto:d_russell@apple.com" title="Doug Russell <d_russell@apple.com>"> <span class="fn">Doug Russell</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=142059#c7">comment #7</a>)
<span class="quote">> Comment on <span class=""><a href="attachment.cgi?id=247479&action=diff" name="attach_247479" title="Patch">attachment 247479</a> <a href="attachment.cgi?id=247479&action=edit" title="Patch">[details]</a></span>
> Patch

> View in context:
> <a href="https://bugs.webkit.org/attachment.cgi?id=247479&action=review">https://bugs.webkit.org/attachment.cgi?id=247479&action=review</a>

> > Source/WebCore/dom/EventDispatcher.cpp:353
> > +#if PLATFORM(COCOA) && !PLATFORM(IOS)

> is there a reason we don't want this for iOS? it seems like it might be
> useful someday</span >

No reason. I just wanted to constrain it to the platforms I had actually tested it on for now. I'll open it up to iOS.

<span class="quote">> 
> > Source/WebCore/dom/EventDispatcher.cpp:358
> > +    if (!preventDOMDispatch && !event->propagationStopped() && !eventPath.isEmpty())

> instead of putting the #define here, i think moving it into the method
> itself would be a bit cleaner. then you don't need to make a separate
> variable to hold the result</span >

That should be doable.

<span class="quote">> 
> > Source/WebCore/page/EventHandler.cpp:3218
> > +bool EventHandler::accessibilityWantsToHandleEvent(Event& event, Node& node)

> My suggestion for a name is "accessibilityPreventsEventDispatch())</span >

That works. I'll make the attribute rename you suggested later to make it all match.

<span class="quote">> 
> > Source/WebCore/page/EventHandler.cpp:3220
> > +    if (!AXObjectCache::accessibilityEnhancedUserInterfaceEnabled())

> you might want to check accessibilityEnabled and enhancedUserInterface
> enabled, in case they mistakenly got out of date</span >

Will do.

<span class="quote">> 
> > Source/WebCore/page/EventHandler.cpp:3224
> > +    if (eventType != eventNames().keydownEvent && eventType != eventNames().keypressEvent)

> what about keyUp? seems like webapps could get into a bad state if they only
> got keyUps</span >

Good point. I imagine that could go weird.

<span class="quote">> 
> > Source/WebCore/page/EventHandler.cpp:3235
> > +    Frame* frame = nodeAccessibility->frame();

> i don't think you need to get an axObject from the node in order to just get
> back to the frame

> I think you can just do node.document()->frame()</span >

I'll try that.

<span class="quote">> 
> > Source/WebCore/page/EventHandler.cpp:3241
> > +        // Tab

> instead of adding comments that say what they are which are, can you add a
> comment explaining why we are snarfing tab and arrow keys</span >

Will do.

<span class="quote">> 
> > Source/WebCore/page/Settings.in:48
> > +ignoreDOMKeyEventHandlers initial=false

> i'm not crazy about the name.
> One idea: preventKeyboardEventDispatch</span ></pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>