Re: Next steps on drag-and-drop? [was: Ensuring HTML5 drag and drop events can be activated by keyboard-only users]

Hi Mike,

Thank you for your reply.

I don't think the specification would need changing if it's possible
to activate the events using the keyboard alone, as the specification
makes it clear at the start and throughout that the drag and drop
mechanism should be device independent. My concern is whether it is
possible to create the chain of events required to complete the drag
and drop operation using the keyboard alone.

The WAI-ARIA Authoring Practices document outlines the following
workflow for accessible drag and drop [1]:

1: Identify draggable objects

2: Allow the user to initiate the appropriate drag operation using the keyboard

3: Mark the drop targets

4: Implement keyboard functionality to assist the user and AT with
executing the drop

5: Allow the process to be cancelled at any point

6: Tidy up after the drag and drop operation

HTML5 defines attributes to make that workflow possible, but I have
reservations that the chain of events could be triggered in a device
independent manner. HTML5 defines the following events:

* dragstart

* drag

* dragenter

* dragleave

* dragover

* drop

* dragend


It's difficult to imagine how some of these events get fired using the
keyboard alone against the accessible workflow defined in the WAI-ARIA
Authoring Practices document. For example, the dragover event implies
a similar mode of operation to mouseover. This can obviously be
triggered by any pointing device, but how would that be triggered by
the user agent when the user is using a keyboard?

The specification states that user agents must process these events
according to a particular sequence  [2]. Part of that sequence defines
where dragover should be fired, and that's the point that the
dropEffect property value is conveyed to the user (for example,
"copy", "link", "move", or "none"). It's not immediately obvious to me
how this can be implemented using the keyboard alone so that essential
information is conveyed to the user.

[1] http://www.w3.org/TR/wai-aria-practices/#dragdrop
[2] http://dev.w3.org/html5/spec/Overview.html#drag-and-drop-processing-model

Regards,

Gez

On 14 July 2010 14:41, Michael(tm) Smith <mike@w3.org> wrote:
> Hi Gez,
>
> It's been a few weeks now since you sent out a request for info
> about keyboard activatability of drag-and-drop events. I note that
> you asked:
>
>> The first thing we need is feedback from browser manufacturers to
>> determine if these events can be fired using the keyboard alone
>> resulting in an accessible workflow.
>
> ..and that we got a response from Eric -
>
>  http://lists.w3.org/Archives/Public/public-html-a11y/2010Jun/0137.html
>  "You can't do this in WebKit today, but I can't think of any
>  reason it  couldn't be made to work."
>
> And along with that, some further details from Maciej -
>
>  http://lists.w3.org/Archives/Public/public-html-a11y/2010Jun/0261.html
>
> We have not gotten responses from other browser vendors yet. But
> it would be surprising if their responses were wildly different
> from what we've heard back so far from Eric and Maciej.
>
> So I think we need to move forward with this on the assumption
> that these events can be made keyboard activatable, and wanted to
> ask what you think steps should be.
>
> One thing that is still unclear to me is what changes, if any, we
> expect might need to be made to the spec once we reach an outcome
> on this. For example, should an explicit statement be added to the
> spec to require that UAs make these events keyboard activatable?
> If so, why would we need that stated for these particular events
> but not for others? Or is there another kind of change that you
> anticipate the spec might need to make?
>
>  --Mike
>
> Gez Lemon <g.lemon@webprofession.com>, 2010-06-10 15:21 +0100:
>
>> Hi everyone,
>>
>> At last week's teleconference, Rich suggested that I follow-up with an
>> email to this group outlining what is required to make drag and drop
>> accessible with HTML5. As I mentioned last week, event names are
>> defined in a device independent way in the HTML specification, so
>> should be able to be made accessible to keyboard only users. The HTML5
>> drag and drop mechanism defines seven events:
>>
>> * dragstart (initiate the drag and drop operation)
>>
>> * drag (continue drag and drop operation)
>>
>> * dragenter (determine if accepted)
>>
>> * dragleave (leaving a target)
>>
>> * dragover (provide feedback to user)
>>
>> * drop (complete the operation)
>>
>> * dragend (tidy up)
>>
>> These events cannot currently be activated using the keyboard alone in
>> user agents. The drag and drop processing model is defined in the
>> HTML5 specification:
>>
>> http://dev.w3.org/html5/spec/Overview.html#drag-and-drop-processing-model
>>
>> The first thing we need is feedback from browser manufacturers to
>> determine if these events can be fired using the keyboard alone
>> resulting in an accessible workflow.
>>
>> Regards,
>>
>> Gez
>>
>>
>>
>
> --
> Michael(tm) Smith
> http://people.w3.org/mike
>
>



-- 
_____________________________
Supplement your vitamins
http://juicystudio.com
http://twitter.com/gezlemon

Received on Wednesday, 14 July 2010 23:19:16 UTC