Carolyn, gang,
Before we get too deep into (re-) designing this API... Do we have a
clear set of use cases? What AT do we expect to call this/these API
call(s), supporting which use cases?
Regards,
Peter
On 6/27/2011 11:13 AM, Carolyn MacLeod wrote:
Hi, all.
Regarding IAccessibleEditableText2::pasteText(startOffset,
endOffset,
mimeType):
1) If we are going to use "mime
type" to specify the clipboard format, then I think we need an
explicit
mapping from mime type to platform-specific clipboard format so
that AT
and server are both speaking the same language. For example,
something
like:
| MIME type
|
Windows
|
GTK/ATK
|
| text/plain
|
CF_TEXT (predefined)
|
gdk_atom_intern("COMPOUND_TEXT")
gdk_atom_intern("UTF8_STRING")
gdk_atom_intern("STRING")
|
| text/rtf
|
CF_RTF =
RegisterClipboardFormat("Rich
Text Format")
|
gdk_atom_intern("text/rtf")
gdk_atom_intern("TEXT/RTF")
gdk_atom_intern("application/rtf")
|
| text/html
|
CF_HTML =
RegisterClipboardFormat("HTML
Format")
|
gdk_atom_intern("text/html")
gdk_atom_intern("TEXT/HTML") |
2) Do we allow only text/* MIME
types?
Or do we allow all mime types? For example, is pasteText(10,
20, "image/jpeg")
allowed? Probably should be, given that most word processors can
paste
an image (among other things) at a specific location, but the
name pasteText
is wrong for that context (unless it means "paste the into the
text"...).
For the curious, here is a
typical list
of text/* mime types, taken from Java AWT data transfer's "best
text
flavor" method:
http://download.oracle.com/javase/6/docs/api/java/awt/datatransfer/DataFlavor.html#selectBestTextFlavor(java.awt.datatransfer.DataFlavor[])
•"text/sgml"
•"text/xml"
•"text/html"
•"text/rtf"
•"text/enriched"
•"text/richtext"
•"text/uri-list"
•"text/tab-separated-values"
•"text/t140"
•"text/rfc822-headers"
•"text/parityfec"
•"text/directory"
•"text/css"
•"text/calendar"
•"application/x-java-serialized-object"
•"text/plain"
•"text/<other>"
3) We need to more fully specify:
"If
mime type is missed then application choose more appropriate one
depending
on insertion context."
i.e. If mime_type is empty string
or
NULL? Also, if mime_type is unsupported by the server, I assume
we would
return E_INVALIDARG and paste nothing?
4) Paste gets a bit complicated
in the
context of multiple selections, so the following sentence may
need revision:
"If both start and end offsets
are equal to IA2_TEXT_OFFSET_SELECTION (value -3) then they
point to start
and end offset of active selection (i.e. start or end of
selection has
a caret)."
If we truly mean that pasteText
only
pastes onto the selection that has the caret, then perhaps we
can spec
it as:
pasteText(IA2_TEXT_OFFSET_CARET,
IA2_TEXT_OFFSET_SELECTION,
mime_type)
rather than:
pasteText(IA2_TEXT_OFFSET_SELECTION,
IA2_TEXT_OFFSET_SELECTION,
mime_type)
This would make it clearer that
it is
the selection with the caret that will be operated on.
However, it probably makes more
sense
to spec that the paste should happen on all selections. Consider
the following
semantics of clipboard operations on multiple selections in MS
Word (which
is not the defining app for multiple selection clipboard
operations, however
their semantics mostly make sense... and when I tried FF, I got
odd behavior
for everything except Copy).
If we have this line of text:
One fish two fish red fish blue
fish
Now select One two red blue by
double-clicking
while holding down Ctrl (I don't know how to do this with only
the keyboard),
then Copy, and the clipboard contains:
One
two
red
blue
(I am not sure why line breaks
are inserted
between words... that is a bit odd. Multi-select copy in FF
concatenates
the words without line breaks).
Start again with the original
text,
select One two red blue as before, and Cut, and we are left
with:
fish fish fish fish
The clipboard contains the same
data
as for Copy.
Start again with the original
text,
select One two red blue, and Paste "the ", and we get:
the fish the fish the fish the
fish
Finally, start again with the
original
text, select One two red blue, and type "green", and we have:
One fish two fish red fish green
fish
In other words, clipboard
commands operate
on all selections, but insert (typing) only operates on the
selection that
contains the caret.
What I am getting at by all of
this
is that maybe pasteText should not have any offset parameters at
all, because
startOffset and endOffset are inadequate to define multiple
selections).
Perhaps pasteText should simply
be specified
to always operate on the selection, whatever that may be.
And if that is the case, then it
only
makes sense to remove the parameters from copyText and cutText
as well,
for the same reason.
Carolyn
Hi, Brian.
I added this suggestion to wiki -
https://wiki.mozilla.org/Accessibility/IA2_1.3#IAccessibleEditableText2_interface.
Thank you.
Alex.
On Tue, Jun 7, 2011 at 10:51 PM, Brian Cragun
<[email protected]>
wrote:
> I propose we add a way for IA2 Paste Text to provide both
a Start
and an End
> Offset parameter. Also to provide an Attributes
parameter.
> Copy-with-parameters should be implemented as an
additional method
in
> IAccessibleText.
>
> See previous exchanges on this topic to the list:
> https://lists.linux-foundation.org/pipermail/accessibility-ia2/2010-September/001219.html
> https://lists.linux-foundation.org/pipermail/accessibility-ia2/2010-October/001223.html
>
> Previously this was not changed because it required a new
interface.
Now we
> are making new interfaces. Good time to add.
>
> Regards,
>
> Brian
>
> Brian Cragun
> IBM AbilityLab Consultant
> Human Ability & Accessibility Center
> www.ibm.com/able
& w3.ibm.com/able
> W:(720)-663-2801 H:(507)288-2437
>
>
>
>
> From: Pete Brunet <[email protected]>
> To: IA2 List
<[email protected]>
> Date: 06/06/2011 11:12 PM
> Subject: Re: [Accessibility-ia2] next changes
to IAccessible2
> Sent by:
[email protected]
> ________________________________
>
>
> Hi all, Please take a look at this and provide your
feedback:
>
> https://wiki.mozilla.org/Accessibility/IA2_1.3
>
> Thanks, Pete
> --
> Pete Brunet
>
> a11ysoft - Accessibility Architecture and Development
> (512) 238-6967 (work), (512) 689-4155 (cell)
> Skype: pete.brunet
> IM: ptbrunet (AOL, Google), [email protected] (MSN)
> http://www.a11ysoft.com/about/
> Ionosphere: WS4G
>
> On 3/11/2011 11:10 PM, Alexander Surkov wrote:
> Hi, Jamie. I missed Mick suggestion on the list. It's
sounds reasonable
and
> I agree we should try it before getting new API for this
since the
issue is
> mostly about events.
>
> Thank you.
> Alex.
>
>
> On Sat, Mar 12, 2011 at 11:43 AM, James Teh
<[email protected]>
wrote:
> Hi.
>
> Nice work; good to get the discussion going. :)
>
> I still don't see a need for this registry API. Why not
just use
> IsWinEventHookInstalled(), as Mick suggested on the IA2
list?
>
> Thanks.
>
> Jamie
>
>
> On 12/03/2011 3:48 AM, Alexander Surkov wrote:
> Hi.
>
> I gathered ideas into one doc -
> https://wiki.mozilla.org/Accessibility/IA2_1.3.
Please give feedback
> here and feel free to edit the wiki.
>
> Thank you.
> Alex.
>
> --
> James Teh
> Vice President, Developer
> NV Access Inc, ABN 61773362390
> Email: [email protected]
> Web site: http://www.nvaccess.org/
>
> _______________________________________________
> Accessibility-ia2 mailing list
> [email protected]
> https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
>
>
> _______________________________________________
> Accessibility-ia2 mailing list
> [email protected]
> https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
>
>
_______________________________________________
Accessibility-ia2 mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
_______________________________________________
Accessibility-ia2 mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
--
Peter Korn | Accessibility Principal
Phone: +1 650 5069522
500 Oracle Parkway | Redwood City, CA 94065
Oracle is committed to developing practices and
products that help protect the environment
|