Re: [Accessibility-ia2] IAccessible2
Hi Rich, I'll be in contact with Alex for the handoff. -Pete On 7/8/14, 11:36 AM, Richard Schwerdtfeger wrote: Hi Pete, Janina, As you may know ARIA 1.1 will require some modifications to platform accessibility APIs. Alex Surkov, from Mozilla, has agreed to take over Pete's position in the Linux Foundation to make the necessary changes, as well as other enhancements, required for IA2 implementers. He also needs to coordinate with the ATK/ATSPI effort to ensure consistency across platforms. Alex would like some assistance on process for producing documentation and updated IDL documents and any other processes and coordination efforts in the Linux Foundation. Please lend him any assistance you can to help get him started. Best, Rich Rich Schwerdtfeger -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessibleTable2::caption/summary deprecation notes need correcting
Hi Rich, During another activity I was looking at caption and summary last night and happened to end up on a W3C site that documents how tables should be described: www.w3.org/html/wg/drafts/html/master/tabular-data.html#table-descriptions-techniques This shows various techniques: 1) Precede the table with a paragraph and use aria-describedby referencing that paragraph 2) Use the caption tag 3) Use the details tag in a caption tag (and the example shows a summary tag under the details tag) 4/5) Embed the table in a figure tag which has a figcaption tag The third case is the only one showing a summary tag, but it's a child of the caption tag. I found an example here: http://archive.msdn.microsoft.com/mag201212HTML5/Release/ProjectReleases.aspx?ReleaseId=5925 Looking at the UIA properties of a page with that markup, i.e. a hierarchy of caption, details, summary, using Inspect with both IE and FF I saw the full caption text including the summary in the accName / UIA Name. From the perspective of caption that makes sense but having summary as a substring of caption doesn't. Is this a proper use of the summary tag? Or is aria-describedby/labeledby the proper technique? Is there a better document that I should be looking at? Pete On 10/12/13 5:00 AM, Richard Schwerdtfeger wrote: Thanks Pete. Sent from my iPad On Oct 12, 2013, at 12:43 AM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: The IAccessibleTable2 spec has an error. The deprecation note on the caption method indicates that a describedBy relation should be used and the deprecation note on the summary method indicates that a labeledBy relation should be used instead. This is backwards and I will submit a replacement soon. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org mailto:Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessibleTable2::caption/summary deprecation notes need correcting
Thank you Janina, That was very helpful. On 10/15/13 1:05 PM, Janina Sajka wrote: Hi Pete, All: Janina chiming in here to try and provide overall strategic history. I'll leave the technical details to Rich, Steve, and others. The initial problem is that HTML 5 has obsoleted (deprecated) table summary as we knew it in HTML 4. We tried to get that overturned -- to rinstate summary. Eventually, however, we backed off that effort in the expectation that we could accomplish the same purpose more strategically. The goal is that HTML 4's table summary functionality will be taken up by ARIA-1.1's ARIA-DescribedAt attribute. We have published our FPWD of ARIA-1.1 specifically to put this attribute out for discussion: http://lists.w3.org/Archives/Public/wai-xtech/2013Sep/0011.html As always with ARIA, our intent is that this attribute will be usable across markup environments, e.g. SVG as well as HTML. Also, we intend it to be usable on virtually any element. Thus, ARIA-DescribedAt could be understood to subsume HTML 4's Table Summary as well as HTML 4's (and soon HTML 5's) longdesc, among others. Meanwhile, we have determined to leave sleeping dogs lie re summary encapsulated in caption. Janina Pete Brunet writes: Hi Rich, During another activity I was looking at caption and summary last night and happened to end up on a W3C site that documents how tables should be described: www.w3.org/html/wg/drafts/html/master/tabular-data.html#table-descriptions-techniques This shows various techniques: 1) Precede the table with a paragraph and use aria-describedby referencing that paragraph 2) Use the caption tag 3) Use the details tag in a caption tag (and the example shows a summary tag under the details tag) 4/5) Embed the table in a figure tag which has a figcaption tag The third case is the only one showing a summary tag, but it's a child of the caption tag. I found an example here: http://archive.msdn.microsoft.com/mag201212HTML5/Release/ProjectReleases.aspx?ReleaseId=5925 Looking at the UIA properties of a page with that markup, i.e. a hierarchy of caption, details, summary, using Inspect with both IE and FF I saw the full caption text including the summary in the accName / UIA Name. From the perspective of caption that makes sense but having summary as a substring of caption doesn't. Is this a proper use of the summary tag? Or is aria-describedby/labeledby the proper technique? Is there a better document that I should be looking at? Pete On 10/12/13 5:00 AM, Richard Schwerdtfeger wrote: Thanks Pete. Sent from my iPad On Oct 12, 2013, at 12:43 AM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: The IAccessibleTable2 spec has an error. The deprecation note on the caption method indicates that a describedBy relation should be used and the deprecation note on the summary method indicates that a labeledBy relation should be used instead. This is backwards and I will submit a replacement soon. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org mailto:Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] IAccessibleTable2::caption/summary deprecation notes need correcting
The IAccessibleTable2 spec has an error. The deprecation note on the caption method indicates that a describedBy relation should be used and the deprecation note on the summary method indicates that a labeledBy relation should be used instead. This is backwards and I will submit a replacement soon. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
Thanks for checking Jamie. The other thing I don't have any feedback on is the proxy dll: http://accessibility.linuxfoundation.org/a11yspecs/ia2/proxy-dll/ Hopefully someone could verify that at some point. Pete On 7/19/13 1:41 AM, James Teh wrote: On 16/07/2013 11:09 PM, Pete Brunet wrote: The site is now updated: http://accessibility.linuxfoundation.org/a11yspecs/ia2/ Hopefully buildapi.sh and ia2_api_all.idl are OK now. The idl is now correct. Thanks! Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
The site is now updated: http://accessibility.linuxfoundation.org/a11yspecs/ia2/ Hopefully buildapi.sh and ia2_api_all.idl are OK now. Pete On 7/9/13 7:52 AM, Alexander Surkov wrote: We don't use merged IDL. I believe we build header files from IDLs. Alex. On Tue, Jul 9, 2013 at 3:23 AM, James Teh ja...@nvaccess.org wrote: On 9/07/2013 5:13 PM, James Teh wrote: Now, the IDL includes Accessible2.idl before AccessibleRelation.idl, which breaks because IAccessible2 depends on IAccessibleRelation. Alex: I'm curious as to why you didn't hit this issue at Mozilla. Does Mozilla use the official merged IDL or do you generate your own? Jamie -- James Teh Director, NV Access Limited Ph + 61 7 5667 8372 www.nvaccess.org Facebook: http://www.facebook.com/NVAccess Twitter: @nvaccess ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
Thanks for finding this Jamie, I will submit to the LF help desk for replacement. -Pete On 7/9/13 2:13 AM, James Teh wrote: On 22/04/2013 4:28 PM, James Teh wrote: There is a major problem with the merged IDL. It does not include the IAccessibleTable.idl file. This is now fixed, but unfortunately, there's more bad news. Now, the IDL includes Accessible2.idl before AccessibleRelation.idl, which breaks because IAccessible2 depends on IAccessibleRelation. It looks like buildapi.sh was changed to list all of the .idl files in alphabetical order. I suspect there will be other similar problems once AccessibleRelation is moved. I think it's best to return to the old order and just add the missing AccessibleTable.idl. I'm attaching a modified version of buildapi.sh which does just this. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Please review the v1.3 update on the IA2 site
On 5/17/13 6:04 AM, Alexander Surkov wrote: Hi, Pete. It seems linux line endings were changed to windows line ending. Was it intentional change? Hi Alex, It was not intentional. It's often a problem in my multi-platform environment. What needs to be changed? Pete Thank you. Alex. On Thu, May 16, 2013 at 10:39 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: Hi Alex, That's right. I found a couple of very small problems in my review yesterday but when I rebuild the zip it not have an effect on the code. I'm going to wait a while to see if anyone else finds any issues before I resubmit to the web site. -Pete On 5/16/13 12:32 AM, Alexander Surkov wrote: Hi, Pete. Thanks for finishing it! Do I understand right that link for downloading IDLs is http://accessibility.linuxfoundation.org/a11yspecs/ia2/ia2-api-20130501.zip. Thank you. Alex. On Thu, May 16, 2013 at 2:10 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: The IA2 site has been updated to fix a few things people noticed were wrong. Please take a look and let me know if you find anything that needs fixing. The top level is here: http://accessibility.linuxfoundation.org/a11yspecs/ia2/ Please ignore the prior zip, ia2-api-20130314.zip. It will eventually disappear. The spec is here: http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/ Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com mailto:ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org mailto:Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com mailto:ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Object attribute format
Alex, Can you give us an example of the multi-value case? As to the choice we need more input so far we have that you suggested a space and I suggested a comma. -Pete On 5/16/13 11:03 PM, Alexander Surkov wrote: So it'd be good to put the format into the spec. Do I understand correct that the choice falls at comma separated list? Thank you. Alex. On Fri, May 17, 2013 at 11:44 AM, James Teh ja...@nvaccess.org mailto:ja...@nvaccess.org wrote: On 17/05/2013 11:54 AM, Pete Brunet wrote: attribute:value1,value2 seems acceptable. Agreed. Does it implicitly mean that in case of several values the following format is expected (as no subattributes were used): attribute:value1,value2? While the format makes sense, I don't think it's implicit. It isn't something I considered while writing NVDA's IA2 attributes parser, so it won't handle this without changes. It's probably reasonable that others may not have considered it either. Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org mailto:ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org mailto:Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Please review the v1.3 update on the IA2 site
Hi Alex, I used grep under Cygwin to look at the 1.2.1 files and they also had CRLF line endings. Here is the grep command I used: cd .../api grep -IUrl ^M . where ^M was entered using Ctrl+V Ctrl+M. This technique is from: http://stackoverflow.com/questions/73833/how-do-you-search-for-files-containing-dos-line-endings-crlf-with-grep-under-l BTW, CR is Ctrl M and LF is Ctrl J Are you seeing differences from the prior version? If so, what differences? If not, is this a change request? I'm assuming since we are working in a Win environment that CRLF endings would be expected. Pete On 5/17/13 9:35 AM, Alexander Surkov wrote: It'd be good to convert line endings in all files into unix format. On Fri, May 17, 2013 at 11:02 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: On 5/17/13 6:04 AM, Alexander Surkov wrote: Hi, Pete. It seems linux line endings were changed to windows line ending. Was it intentional change? Hi Alex, It was not intentional. It's often a problem in my multi-platform environment. What needs to be changed? Pete Thank you. Alex. On Thu, May 16, 2013 at 10:39 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: Hi Alex, That's right. I found a couple of very small problems in my review yesterday but when I rebuild the zip it not have an effect on the code. I'm going to wait a while to see if anyone else finds any issues before I resubmit to the web site. -Pete On 5/16/13 12:32 AM, Alexander Surkov wrote: Hi, Pete. Thanks for finishing it! Do I understand right that link for downloading IDLs is http://accessibility.linuxfoundation.org/a11yspecs/ia2/ia2-api-20130501.zip. Thank you. Alex. On Thu, May 16, 2013 at 2:10 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: The IA2 site has been updated to fix a few things people noticed were wrong. Please take a look and let me know if you find anything that needs fixing. The top level is here: http://accessibility.linuxfoundation.org/a11yspecs/ia2/ Please ignore the prior zip, ia2-api-20130314.zip. It will eventually disappear. The spec is here: http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/ Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com mailto:ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org mailto:Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com mailto:ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com mailto:ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Object attribute format
I suppose it could be but the current spec doesn't provide for spaces as token separators so using comma would be more consistent and perhaps more in line with the capability of current parsers. -Pete On 5/16/13 9:00 PM, Alexander Surkov wrote: In Firefox we are going to have multiple value attributes but we are at implementation stage yet. I'm not aware about other implementations. Is attribute: value1 value2 format (space delimited string) acceptable? ALex. On Fri, May 17, 2013 at 10:54 AM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: Are any IA2 COM servers implementing this yet? If so how was it done? attribute:value1,value2 seems acceptable. -Pete On 5/16/13 7:57 PM, Alexander Surkov wrote: (resending to IA2 list) Hi. What is object attribute format is excepted when the server needs to provide more than one value for the single object attribute. The IA2 doc says [1] that format is: attribute:value;attribute:subattribute=subvalue,subattribute=subvalue; Does it implicitly mean that in case of several values the following format is expected (as no subattributes were used): attribute:value1,value2? [1] http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2/objectattributes Thank you. Alexander. ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org mailto:Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com mailto:ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessibleText::getTextAtOffset for word boundary clarification needed
On 4/28/13 9:41 PM, Alexander Surkov wrote: Hi, Pete. If the string consists of spaces then ATK get word at offset will contain the word after to the offset if the offset is not inside a word. In this case there are no words so I think (0, 0, ) triple is returned. However ATK is not really clear (see for example http://asurkov.blogspot.ru/2013/04/atx-text-pitfalls.html) to state it certainly. Returns the substring of the specified text type at the specified offset. Refer to IA2TextBoundaryType for more details. I'd changed that to Returns the substring defined by specified text type at the specified offset. Refer ..., otherwise it makes me think that word should be returned in case of word type when offset is outside the word. For the word boundary type if the offset is not at the beginning or inside a word the returned string will contain the word before the offset. Offset at the beginning a word is also an offset inside a word. But actually I like ATK wording: The returned string will contain the word at the offset if the offset is inside a word and will contain the word before the offset if the offset is not inside a word. Thanks Alex, I need input from everyone on how to handle the case of text completely full of whitespace when the text boundary is anything but character. Options: 1) S_FALSE plus 0, 0, NULL pointer 2) S_OK plus 0, 0, Although today's text is not clear enough the first one is how I expect people currently interpret the spec. Here another draft, assuming #1 above. I don't want to change the behavior of the empty text scenario if AT are already relying on that behavior. Returns the substring defined by the specified boundary type at the specified offset. Refer to IA2TextBoundaryType for more details. For the word boundary type the returned string will contain the word at the offset if the offset is inside a word and will contain the word before the offset if the offset is not inside a word. In the preceding sentence the offset at the start of a word is considered to be inside the word. Boundary types of sentence and paragraph should exhibit similar behavior. If the index is valid, but no text is found, S_FALSE is returned along with out values of 0, 0, and a NULL pointer. This would happen for boundary types other than character when the text consists entirely of whitespace. Do you have any comments regarding the before/after methods? Pete 2) If the given offset is a word start then Ctrl+left arrow and Ctrl + right arrow return a previous word. Should an order be opposite instead since it contradicts to getTextAtOffset semantic? I didn't follow that, e.g. why should ctrl+rightArrow move to the previous word, but hopefully the above rewording will address your issue. Yes, it address. Say the caret is right before 'w' in Hello world. If you press ctrlLeft+sfhitCtrlRight then you select Hello . If you do an opposite thing ctrlRight + shiftCtrlLeft then you select world. So the order makes a difference. Getting back to the spec the world is wanted however the spec says to return Hello . Thank you. Alex. On Sat, Apr 27, 2013 at 2:12 AM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: On 4/16/13 1:29 AM, Alexander Surkov wrote: Hi. There are couple issues with IAccessibleText spec. 1) IAccessibleText::getTextAtOffset interface wording is a bit confusing [1], it says: If the index is valid, but no suitable word (or other text type) is found, a NULL pointer is returned. This makes me think (presumably makes me think wrong) that if the offset is outside the word then there's no suitable world. However the boundary types part says [2]: The range provided matches the range observed when the application processes the Ctrl + left arrow and Ctrl + right arrow key sequences. Typically this is from the start of one word to the start of the next. It means the previous word should be returned. Notes: a) A word start boundary from ATK (an analogy to IA2 word boundary) says to return previous word as well [3]: will contain the word before the offset if the offset is not inside a word. b) Firefox returns previous word in this case too. Hi Alex, What does ATK do when the text area is full of spaces and no other text? That seems like the case where S_FALSE and NULL would be returned (except in the case of IA2_TEXT_BOUNDARY_CHAR/ALL). How about this rewording? Returns the substring of the specified text type at the specified offset. Refer to IA2TextBoundaryType for more details. For the word boundary type if the offset is not at the beginning or inside a word the returned string will contain the word before the offset. Boundary types of sentence and paragraph should exhibit
Re: [Accessibility-ia2] IA2 1.3 ready for review
Thank you for catching that Jamie. On 4/21/13 6:18 PM, James Teh wrote: On 16/04/2013 7:15 AM, Pete Brunet wrote: The new version is now on the LF site at http://accessibility.linuxfoundation.org/a11yspecs/ia2/. This page: http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2 still says 1.2.1, even though the links point to 1.3. Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 4/26/13 12:43 PM, Pete Brunet wrote: Thanks Jamie, I've updated buildapi.sh. but I haven't pushed it yet. I'll wait until my conversation with Alex is done. On 4/22/13 1:28 AM, James Teh wrote: Hi Pete, On 16/04/2013 7:15 AM, Pete Brunet wrote: The new version is now on the LF site at http://accessibility.linuxfoundation.org/a11yspecs/ia2/. There is a major problem with the merged IDL. It does not include the IAccessibleTable.idl file. It seems this was removed from buildapi.sh in or before September last year when you released the initial version of 1.3 for review. Thanks, Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
The new version is now on the LF site at http://accessibility.linuxfoundation.org/a11yspecs/ia2/. I found a couple of minor errors which I will fix soon. The proxy DLL hasn't been verified yet. Pete On 4/9/13 10:32 AM, Pete Brunet wrote: I opened a ticket with the LF admins to archive the 1.2.1 files and add the 1.3 files. I hope someone can verify the new IA2 proxy. For now it's at: http://a11ysoft.com/ia2/proxy-dll/ Pete On 3/15/13 10:58 AM, Alexander Surkov wrote: Hopefully Jamie could help with that. I'd be great to have it early Q2. Alex. On Sat, Mar 16, 2013 at 12:43 AM, Pete Brunet p...@a11ysoft.com wrote: On 3/14/13 11:03 PM, Alexander Surkov wrote: I'm fine with that. I would say As a performant alternative or something similar. Btw, Pete, what is a plan about releasing? I can have these files moved onto the Linux Foundation site at any point now (after I make the fix we are talking about). I would like at least one person to try the proxy dll before I do. Is there a date you are looking at for getting this done? Alex. On Fri, Mar 15, 2013 at 12:40 PM, Pete Brunet p...@a11ysoft.com wrote: On 3/14/13 9:30 PM, Alexander Surkov wrote: Hi, Pete. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? I bet this method is in use in accProbe and aViewer already and it must be pretty handy for them. If next IAccessible2 introduces more relation types then tools developers don't need to change their code, release new version, etc. On the another hand relation type is a string so technically the server can implement non standard relations. The method to get all of them is quite useful in this case. Are there any objections to removing the deprecate tag on IA2::nRelations, relation, relations and adding a note to the relations method saying: As an alternative, client code should consider using IA2_2::relationTargetsOfType? Thank you. Alex. On Fri, Mar 15, 2013 at 9:57 AM, Pete Brunet p...@a11ysoft.com wrote: Hi Alex, On 3/4/13 10:29 PM, Alexander Surkov wrote: Hi, Pete. More feedback. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? 2) IAccessible2_2::accessibleWithCaret: Returns the hypertext accessible in the subtree of this object, and the caret offset within it. It doesn't say which object is returned. In my understanding it should be the deepest one. I changed that to: Returns the deepest hypertext accessible... Hopefully Arnstein will comment if this is not correct. 3) Honestly I failed to understand IA2Actions (http://a11ysoft.com/ia2/docs/html/_accessible_action_8idl.html), it seems referred methods like textAtOffset (http://a11ysoft.com/ia2/docs/html/interface_i_accessible_text.html#a9bd84b099ac7ce2435280549e90c8827) say nothing about IA2Action support. I'd be great to provide an example how it works. Otherwise it sounds too generic. I'm glad you noticed this. The preamble text is wrong. I copied it from IA2TextBoundaryType as a prototype and didn't finish the work. These are the actions we defined for adding support for HTML5 media. I changed the preamble text to: /** This enum defines values which are predefined actions for use when implementing support for media. This enum is used when specifying an action for IAccessibleAction::doAction. */ 4) changelog (http://a11ysoft.com/ia2/changelog.txt) lists IA2_RELATION_GROUPING_OBJECT_FOR, IA2_RELATION_POPUP_INITIATOR_FOR relations, however they aren't listed in interface http://a11ysoft.com/ia2/docs/html/_accessible_relation_8idl.html Fixed. 5) IA2_RELATION_CONTAINING_DOCUMENT: makes sense to mention that returned object implements IAccessibleDocument interface. I added: The target object implements the IAccessibleDocument interface. Otherwise it looks good. Thanks Alex, I refreshed the IA2 files - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl Did anyone try the new proxy? http://a11ysoft.com/ia2/proxy-dll/ Thank you. Alex. On Tue, Mar 5, 2013 at 6:34 AM, Pete Brunet p...@a11ysoft.com wrote: Please review the following. This should be the final unless updates are needed. - The change
Re: [Accessibility-ia2] IA2 1.3 ready for review
I opened a ticket with the LF admins to archive the 1.2.1 files and add the 1.3 files. I hope someone can verify the new IA2 proxy. For now it's at: http://a11ysoft.com/ia2/proxy-dll/ Pete On 3/15/13 10:58 AM, Alexander Surkov wrote: Hopefully Jamie could help with that. I'd be great to have it early Q2. Alex. On Sat, Mar 16, 2013 at 12:43 AM, Pete Brunet p...@a11ysoft.com wrote: On 3/14/13 11:03 PM, Alexander Surkov wrote: I'm fine with that. I would say As a performant alternative or something similar. Btw, Pete, what is a plan about releasing? I can have these files moved onto the Linux Foundation site at any point now (after I make the fix we are talking about). I would like at least one person to try the proxy dll before I do. Is there a date you are looking at for getting this done? Alex. On Fri, Mar 15, 2013 at 12:40 PM, Pete Brunet p...@a11ysoft.com wrote: On 3/14/13 9:30 PM, Alexander Surkov wrote: Hi, Pete. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? I bet this method is in use in accProbe and aViewer already and it must be pretty handy for them. If next IAccessible2 introduces more relation types then tools developers don't need to change their code, release new version, etc. On the another hand relation type is a string so technically the server can implement non standard relations. The method to get all of them is quite useful in this case. Are there any objections to removing the deprecate tag on IA2::nRelations, relation, relations and adding a note to the relations method saying: As an alternative, client code should consider using IA2_2::relationTargetsOfType? Thank you. Alex. On Fri, Mar 15, 2013 at 9:57 AM, Pete Brunet p...@a11ysoft.com wrote: Hi Alex, On 3/4/13 10:29 PM, Alexander Surkov wrote: Hi, Pete. More feedback. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? 2) IAccessible2_2::accessibleWithCaret: Returns the hypertext accessible in the subtree of this object, and the caret offset within it. It doesn't say which object is returned. In my understanding it should be the deepest one. I changed that to: Returns the deepest hypertext accessible... Hopefully Arnstein will comment if this is not correct. 3) Honestly I failed to understand IA2Actions (http://a11ysoft.com/ia2/docs/html/_accessible_action_8idl.html), it seems referred methods like textAtOffset (http://a11ysoft.com/ia2/docs/html/interface_i_accessible_text.html#a9bd84b099ac7ce2435280549e90c8827) say nothing about IA2Action support. I'd be great to provide an example how it works. Otherwise it sounds too generic. I'm glad you noticed this. The preamble text is wrong. I copied it from IA2TextBoundaryType as a prototype and didn't finish the work. These are the actions we defined for adding support for HTML5 media. I changed the preamble text to: /** This enum defines values which are predefined actions for use when implementing support for media. This enum is used when specifying an action for IAccessibleAction::doAction. */ 4) changelog (http://a11ysoft.com/ia2/changelog.txt) lists IA2_RELATION_GROUPING_OBJECT_FOR, IA2_RELATION_POPUP_INITIATOR_FOR relations, however they aren't listed in interface http://a11ysoft.com/ia2/docs/html/_accessible_relation_8idl.html Fixed. 5) IA2_RELATION_CONTAINING_DOCUMENT: makes sense to mention that returned object implements IAccessibleDocument interface. I added: The target object implements the IAccessibleDocument interface. Otherwise it looks good. Thanks Alex, I refreshed the IA2 files - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl Did anyone try the new proxy? http://a11ysoft.com/ia2/proxy-dll/ Thank you. Alex. On Tue, Mar 5, 2013 at 6:34 AM, Pete Brunet p...@a11ysoft.com wrote: Please review the following. This should be the final unless updates are needed. - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl - The proxy: http://a11ysoft.com
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 3/14/13 11:03 PM, Alexander Surkov wrote: I'm fine with that. I would say As a performant alternative or something similar. Btw, Pete, what is a plan about releasing? I can have these files moved onto the Linux Foundation site at any point now (after I make the fix we are talking about). I would like at least one person to try the proxy dll before I do. Is there a date you are looking at for getting this done? Alex. On Fri, Mar 15, 2013 at 12:40 PM, Pete Brunet p...@a11ysoft.com wrote: On 3/14/13 9:30 PM, Alexander Surkov wrote: Hi, Pete. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? I bet this method is in use in accProbe and aViewer already and it must be pretty handy for them. If next IAccessible2 introduces more relation types then tools developers don't need to change their code, release new version, etc. On the another hand relation type is a string so technically the server can implement non standard relations. The method to get all of them is quite useful in this case. Are there any objections to removing the deprecate tag on IA2::nRelations, relation, relations and adding a note to the relations method saying: As an alternative, client code should consider using IA2_2::relationTargetsOfType? Thank you. Alex. On Fri, Mar 15, 2013 at 9:57 AM, Pete Brunet p...@a11ysoft.com wrote: Hi Alex, On 3/4/13 10:29 PM, Alexander Surkov wrote: Hi, Pete. More feedback. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? 2) IAccessible2_2::accessibleWithCaret: Returns the hypertext accessible in the subtree of this object, and the caret offset within it. It doesn't say which object is returned. In my understanding it should be the deepest one. I changed that to: Returns the deepest hypertext accessible... Hopefully Arnstein will comment if this is not correct. 3) Honestly I failed to understand IA2Actions (http://a11ysoft.com/ia2/docs/html/_accessible_action_8idl.html), it seems referred methods like textAtOffset (http://a11ysoft.com/ia2/docs/html/interface_i_accessible_text.html#a9bd84b099ac7ce2435280549e90c8827) say nothing about IA2Action support. I'd be great to provide an example how it works. Otherwise it sounds too generic. I'm glad you noticed this. The preamble text is wrong. I copied it from IA2TextBoundaryType as a prototype and didn't finish the work. These are the actions we defined for adding support for HTML5 media. I changed the preamble text to: /** This enum defines values which are predefined actions for use when implementing support for media. This enum is used when specifying an action for IAccessibleAction::doAction. */ 4) changelog (http://a11ysoft.com/ia2/changelog.txt) lists IA2_RELATION_GROUPING_OBJECT_FOR, IA2_RELATION_POPUP_INITIATOR_FOR relations, however they aren't listed in interface http://a11ysoft.com/ia2/docs/html/_accessible_relation_8idl.html Fixed. 5) IA2_RELATION_CONTAINING_DOCUMENT: makes sense to mention that returned object implements IAccessibleDocument interface. I added: The target object implements the IAccessibleDocument interface. Otherwise it looks good. Thanks Alex, I refreshed the IA2 files - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl Did anyone try the new proxy? http://a11ysoft.com/ia2/proxy-dll/ Thank you. Alex. On Tue, Mar 5, 2013 at 6:34 AM, Pete Brunet p...@a11ysoft.com wrote: Please review the following. This should be the final unless updates are needed. - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl - The proxy: http://a11ysoft.com/ia2/proxy-dll/ Pete On 2/26/13 12:30 AM, Pete Brunet wrote: If don't hear anything over the next couple of days, I'll assume this won't be in 1.3 and I'll finish up the work I need to do to republish the spec on a11ysoft.com for one more look at it before I get in touch with the Linux Foundation IT guys to get it published there. On 2/25/13 11:58 PM, Alexander Surkov wrote: Probably
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 3/14/13 9:30 PM, Alexander Surkov wrote: Hi, Pete. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? I bet this method is in use in accProbe and aViewer already and it must be pretty handy for them. If next IAccessible2 introduces more relation types then tools developers don't need to change their code, release new version, etc. On the another hand relation type is a string so technically the server can implement non standard relations. The method to get all of them is quite useful in this case. Are there any objections to removing the deprecate tag on IA2::nRelations, relation, relations and adding a note to the relations method saying: As an alternative, client code should consider using IA2_2::relationTargetsOfType? Thank you. Alex. On Fri, Mar 15, 2013 at 9:57 AM, Pete Brunet p...@a11ysoft.com wrote: Hi Alex, On 3/4/13 10:29 PM, Alexander Surkov wrote: Hi, Pete. More feedback. 1) It makes sense to not deprecate IAccessible2::relations since it can be useful for AT tools. In this case maxRelations argument is not really needed and it can be marked as ignored but it's not big deal. Is there a reason to not deprecate it, i.e. do we need implementers to spend the time on it? What can be done with it that can't be done with IA2_2:relationTargetsOfType? 2) IAccessible2_2::accessibleWithCaret: Returns the hypertext accessible in the subtree of this object, and the caret offset within it. It doesn't say which object is returned. In my understanding it should be the deepest one. I changed that to: Returns the deepest hypertext accessible... Hopefully Arnstein will comment if this is not correct. 3) Honestly I failed to understand IA2Actions (http://a11ysoft.com/ia2/docs/html/_accessible_action_8idl.html), it seems referred methods like textAtOffset (http://a11ysoft.com/ia2/docs/html/interface_i_accessible_text.html#a9bd84b099ac7ce2435280549e90c8827) say nothing about IA2Action support. I'd be great to provide an example how it works. Otherwise it sounds too generic. I'm glad you noticed this. The preamble text is wrong. I copied it from IA2TextBoundaryType as a prototype and didn't finish the work. These are the actions we defined for adding support for HTML5 media. I changed the preamble text to: /** This enum defines values which are predefined actions for use when implementing support for media. This enum is used when specifying an action for IAccessibleAction::doAction. */ 4) changelog (http://a11ysoft.com/ia2/changelog.txt) lists IA2_RELATION_GROUPING_OBJECT_FOR, IA2_RELATION_POPUP_INITIATOR_FOR relations, however they aren't listed in interface http://a11ysoft.com/ia2/docs/html/_accessible_relation_8idl.html Fixed. 5) IA2_RELATION_CONTAINING_DOCUMENT: makes sense to mention that returned object implements IAccessibleDocument interface. I added: The target object implements the IAccessibleDocument interface. Otherwise it looks good. Thanks Alex, I refreshed the IA2 files - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl Did anyone try the new proxy? http://a11ysoft.com/ia2/proxy-dll/ Thank you. Alex. On Tue, Mar 5, 2013 at 6:34 AM, Pete Brunet p...@a11ysoft.com wrote: Please review the following. This should be the final unless updates are needed. - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl - The proxy: http://a11ysoft.com/ia2/proxy-dll/ Pete On 2/26/13 12:30 AM, Pete Brunet wrote: If don't hear anything over the next couple of days, I'll assume this won't be in 1.3 and I'll finish up the work I need to do to republish the spec on a11ysoft.com for one more look at it before I get in touch with the Linux Foundation IT guys to get it published there. On 2/25/13 11:58 PM, Alexander Surkov wrote: Probably we should let IA2 1.3 go without addressing this issue. In Firefox we still can use IA2 to expose it in non-standard way (like new object attribute). Alex. On Tue, Feb 26, 2013 at 2:49 PM, James Teh ja...@nvaccess.org wrote: On 26/02/2013 4:12 PM, Pete Brunet wrote: So Is the following what you want? It moves the method from IA2_2 to IAText2 thus resolving an issue for Jamie. HRESULT IAccessibleText2::offsetOfChildText ( [in] IUnknown* child, [out] long* offset
[Accessibility-ia2] IA2 1.3 ready for review
Please review the following. This should be the final unless updates are needed. - The change log: http://a11ysoft.com/ia2/changelog.txt - IA2 spec: http://a11ysoft.com/ia2/docs/html/ - The individual IDL files: http://a11ysoft.com/ia2/api/ or the full IDL file: http://a11ysoft.com/ia2/ia2_api_all.idl - The proxy: http://a11ysoft.com/ia2/proxy-dll/ Pete On 2/26/13 12:30 AM, Pete Brunet wrote: If don't hear anything over the next couple of days, I'll assume this won't be in 1.3 and I'll finish up the work I need to do to republish the spec on a11ysoft.com for one more look at it before I get in touch with the Linux Foundation IT guys to get it published there. On 2/25/13 11:58 PM, Alexander Surkov wrote: Probably we should let IA2 1.3 go without addressing this issue. In Firefox we still can use IA2 to expose it in non-standard way (like new object attribute). Alex. On Tue, Feb 26, 2013 at 2:49 PM, James Teh ja...@nvaccess.org wrote: On 26/02/2013 4:12 PM, Pete Brunet wrote: So Is the following what you want? It moves the method from IA2_2 to IAText2 thus resolving an issue for Jamie. HRESULT IAccessibleText2::offsetOfChildText ( [in] IUnknown* child, [out] long* offset ); ... S_OK is returned if the parent accessible implements IAccessibleText. S_FALSE is returned if the parent accessible does not implement IAccessibleText; [out] value is -1. This text needs to be changed for the new method. That said, this certainly does look nicer to me. I still think it's a bit of a hack, especially given that IAccessibleHyper* should really cover this, but at least it's an isolated hack. Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Plea for a new function
Alex, Brett, Jamie, What do you recommend? 1) HRESULT IAccessible2_2::offsetInParentText ( [out] long* offset ); Return the text offset in the immediate parent node. 2) Do not add this method. 3) Something else. Pete On 2/10/13 8:15 PM, Alexander Surkov wrote: It's a total hack. However, imo, this whole idea is a hack. :) It could be. IAccessibleHyperlink or IAccessibleText on text leafs are hacks and actually it is a thin ice for Firefox. This easily could face us to lot of work. Also these approaches aren't really subject of the spec and it should introduce even bigger difference in implementations between servers. On the another hand we have the method on internal layer in Firefox that Brett needs. The method is used to build IAccessibleText/Hypertext implementation from accessible tree. So if AT works both with accessible tree and IAccesisbleText/HyperText for text stuff then this method can be useful. Thank you. Alex. On Mon, Feb 11, 2013 at 11:00 AM, James Teh ja...@nvaccess.org wrote: On 11/02/2013 11:22 AM, Alexander Surkov wrote: Hi, Jamie. If text leafs implement IAccessibleHyperlink but previously IAccessibleHyperlink was implemented by embedded objects only then this might be something that AT relies on. I guess this is a possibility, though I'd assume that ATs that don't need text leaf nodes wouldn't traverse them. We'd certainly need ot check, though. On the another hand parent IAccessibleHyperText would return a collection of children instead the collection of embedded objects and AT could have dependencies on it as well. Ah. I was imagining that the parent IAccessibleHypertext wouldn't return the text leaf nodes. See notes on hack below. pure IAccessibleHyperlink on text leafs is rather a hack than it suites them well. It's a total hack. However, imo, this whole idea is a hack. :) Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Plea for a new function
On 2/25/13 11:00 PM, Alexander Surkov wrote: Hi, Pete. It shouldn't be static. The object is method called on is a parent. HRESULT IAccessibleText2::childOffset ( [in] IUnknown* childAccessible, [out] long* offset ); Thanks for pointing that out Alex. I had it backward from what you are thinking. So Is the following what you want? It moves the method from IA2_2 to IAText2 thus resolving an issue for Jamie. HRESULT IAccessibleText2::offsetOfChildText ( [in] IUnknown* child, [out] long* offset ); Return the offset in this accessible's text which corresponds to the text of the specified child. Returns: S_OK is returned if the parent accessible implements IAccessibleText. S_FALSE is returned if the parent accessible does not implement IAccessibleText; [out] value is -1. Also, what interfaces are implemented on the child nodes? depending on the object. These are IAccessible/IAccessible2, IAccessibleImage in case of image. BTW, not being in the situation of needing this for my own implementation I'm trusting our implementers to convey whether or not this is generally useful to the IA2 community. If not then we shouldn't add the method especially since there is the solution of the private interface. Yes, I think we can always invent on own. For example, VARIANT object attributes from 1.3 should work here. Probably that's the way to go since we can't reach an agreement on this item. I don't sense disagreement yet. It's just taking a while. Maybe the above rework will help resolve one of Jamie's concerns. Thank you. Alex. On Tue, Feb 26, 2013 at 1:32 PM, Pete Brunet p...@a11ysoft.com wrote: On 2/25/13 9:40 PM, Alexander Surkov wrote: I don't mind adding the method to the spec but I don't have strong opinion either. I agree with Jamie that keeping the text method on IAccessible2 looks unusual. In Gecko we keep an analogue method in text interface: int32_t GetChildOffset(Accessible* aChild); That's a static method. Is it OK to have static methods in IDL? If so would it make sense to add the following to IAText2? = HRESULT IAccessibleText2::offsetInParent ( [in] IUnknown* accessible, [out] long* offset ); Return the text offset in the parent of the specified accessible. Return the text offset in the parent of the specified accessible corresponding to the beginning of the text associated with the specified accessible. Returns: S_OK is returned if the parent accessible implements IAccessibleText. S_FALSE is returned if the parent accessible does not implement IAccessibleText; [out] value is -1. Note: This is a static method. = Also, what interfaces are implemented on the child nodes? BTW, not being in the situation of needing this for my own implementation I'm trusting our implementers to convey whether or not this is generally useful to the IA2 community. If not then we shouldn't add the method especially since there is the solution of the private interface. Alex. On Tue, Feb 26, 2013 at 12:29 PM, James Teh ja...@nvaccess.org wrote: Unusually :), I find it difficult to give an opinion on this. Clearly, multiple people think it should be introduced. However, I find it very hard to justify introducing what is essentially a hack into the main IAccessible2 interface. Furthermore, this method is related to IAccessibleText, yet it's not in a text specific interface. Once it's in the main interface, it can't be removed and server implementers have to implement it, even if they just throw not implemented. If it must be introduced, I'd prefer to see a separate interface for it, but that seems rather silly. We do have a precedent in IADocument::anchorText. That's the only method in that interface. In short, I'm not going to fight inclusion of this, since I don't have strong enough arguments against, but I'm not entirely comfortable with it either. Jamie On 26/02/2013 7:50 AM, Pete Brunet wrote: Alex, Brett, Jamie, What do you recommend? 1) HRESULT IAccessible2_2::offsetInParentText ( [out] long* offset ); Return the text offset in the immediate parent node. 2) Do not add this method. 3) Something else. Pete On 2/10/13 8:15 PM, Alexander Surkov wrote: It's a total hack. However, imo, this whole idea is a hack. :) It could be. IAccessibleHyperlink or IAccessibleText on text leafs are hacks and actually it is a thin ice for Firefox. This easily could face us to lot of work. Also these approaches aren't really subject of the spec and it should introduce even bigger difference in implementations between servers. On the another hand we have the method on internal layer in Firefox that Brett needs. The method is used to build IAccessibleText/Hypertext implementation from accessible tree. So if AT works both with accessible tree and IAccesisbleText/HyperText for text stuff then this method can be useful. Thank you. Alex
Re: [Accessibility-ia2] Plea for a new function
Since there is a need for this and the solution is easy to implement it seems worth adding. Here is a draft for review. HRESULT IAccessible2_2::offsetInParentText ( [out] long* offset ); Return text offset in parent. Determine the parent accessible which implements IAccessibleText and return the offset in that object which corresponds to the beginning of the text associated with this accessible. If this accessible implements IAccessibleText, 0 will be returned. Returns: S_OK is returned if this accessible or a parent accessible implements IAccessibleText. S_FALSE is returned if no nodes implementing IAccessibleText are found; [out] value is 0. On 2/5/13 10:58 PM, Alexander Surkov wrote: Hi, Pete. Options were discussed: 1) make text leaf accessible implement IAccessibleText (I didn't like it, see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001731.html) 2) make text leaf accessible implement IAccessibleHyperLink (I didn't like it, see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001731.html) 3) add a new method DescendantOffset(IAccessible* acc, long* offset) like Brett suggested (see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001729.html). I don't mind. It's easy to implement. 4) do nothing (Jamie mentioned that pure IAccessibleText/HyperLink/HyperText should work also as alternative approach to the approach described by Brett, but here we probably run into restrictions of proprietary softwares). Thank you. Alex. On Wed, Feb 6, 2013 at 2:31 AM, Pete Brunet p...@a11ysoft.com wrote: To all, Please review the thread Brett started at: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001729.html to see if any further progress can be made on this issue. On 2/5/13 8:46 AM, Brett Lewis wrote: Hi, I wish we could get it in but it definitely sounded like there was no consensus on the issue, so let's let it go. Thanks, Brett From: Pete Brunet [mailto:p...@a11ysoft.com] Sent: Monday, February 04, 2013 7:02 PM To: Brett Lewis Cc: IAccessible2 mailing list Subject: Re: [Accessibility-ia2] Plea for a new function Hi Brett, Is this still an issue for you? We're very near the end of discussions for IA2 1.3 and wanted to see if more discussion is needed on this issue. -Pete On 11/26/12 7:03 PM, James Teh wrote: On 27/11/2012 8:02 AM, Brett Lewis wrote: I am getting the Iaccessible tree. I then find that I want the text attributes for one of my leaf nodes and find that I have to go back up the Iaccessible tree to find the nearest Iaccessible node that allow QI to IAccessibleText and then trying to figure out how to map the result back down to my Iaccessible leaf node. If you can, for Mozilla, it's best to ignore leaf nodes altogether; i.e. pretend they don't exist. That way, you're only dealing with nodes that support IAccessibleText. However, there may well be a good reason you can't do this. Jamie -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Plea for a new function
Thanks Alex, How is this? HRESULT IAccessible2_2::offsetInParentText ( [out] long* offset ); Return text offset in parent. Determine the parent accessible which implements IAccessibleText and return the offset in that object which corresponds to the beginning of the text associated with this accessible. Returns: S_OK is returned if a parent accessible implements IAccessibleText. S_FALSEis returned if no parent nodes implementing IAccessibleText are found; [out] value is -1. On 2/6/13 8:02 PM, Alexander Surkov wrote: Hi, Pete. The method looks ok. Few notes. If this accessible implements IAccessibleText then it can be a child of another IAccessibleText, in this case it also has associated text (embedded character) and thus it has valid offset. Btw, I would use -1 in case when there's no parent IAccessibleText instead of 0 since 0 is valid offset and it may be confusing (I saw S_FALSE which is reasonable but anyway). Thank you. Alex. On Thu, Feb 7, 2013 at 2:43 AM, Pete Brunet p...@a11ysoft.com wrote: Since there is a need for this and the solution is easy to implement it seems worth adding. Here is a draft for review. HRESULT IAccessible2_2::offsetInParentText ( [out] long* offset ); Return text offset in parent. Determine the parent accessible which implements IAccessibleText and return the offset in that object which corresponds to the beginning of the text associated with this accessible. If this accessible implements IAccessibleText, 0 will be returned. Returns: S_OK is returned if this accessible or a parent accessible implements IAccessibleText. S_FALSE is returned if no nodes implementing IAccessibleText are found; [out] value is 0. On 2/5/13 10:58 PM, Alexander Surkov wrote: Hi, Pete. Options were discussed: 1) make text leaf accessible implement IAccessibleText (I didn't like it, see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001731.html) 2) make text leaf accessible implement IAccessibleHyperLink (I didn't like it, see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001731.html) 3) add a new method DescendantOffset(IAccessible* acc, long* offset) like Brett suggested (see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001729.html). I don't mind. It's easy to implement. 4) do nothing (Jamie mentioned that pure IAccessibleText/HyperLink/HyperText should work also as alternative approach to the approach described by Brett, but here we probably run into restrictions of proprietary softwares). Thank you. Alex. On Wed, Feb 6, 2013 at 2:31 AM, Pete Brunet p...@a11ysoft.com wrote: To all, Please review the thread Brett started at: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001729.html to see if any further progress can be made on this issue. On 2/5/13 8:46 AM, Brett Lewis wrote: Hi, I wish we could get it in but it definitely sounded like there was no consensus on the issue, so let's let it go. Thanks, Brett From: Pete Brunet [mailto:p...@a11ysoft.com] Sent: Monday, February 04, 2013 7:02 PM To: Brett Lewis Cc: IAccessible2 mailing list Subject: Re: [Accessibility-ia2] Plea for a new function Hi Brett, Is this still an issue for you? We're very near the end of discussions for IA2 1.3 and wanted to see if more discussion is needed on this issue. -Pete On 11/26/12 7:03 PM, James Teh wrote: On 27/11/2012 8:02 AM, Brett Lewis wrote: I am getting the Iaccessible tree. I then find that I want the text attributes for one of my leaf nodes and find that I have to go back up the Iaccessible tree to find the nearest Iaccessible node that allow QI to IAccessibleText and then trying to figure out how to map the result back down to my Iaccessible leaf node. If you can, for Mozilla, it's best to ignore leaf nodes altogether; i.e. pretend they don't exist. That way, you're only dealing with nodes that support IAccessibleText. However, there may well be a good reason you can't do this. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Plea for a new function
Alex, Do you see any need to restrict this to the immediate parent? I'm going to assume not in the following: HRESULT IAccessible2_2::offsetInAncestorText ( [out] long* offset ); Return the text offset in an ancestor node. Determine the closest ancestor in the tree of accessibles which implements IAccessibleText and return the offset in that accessible which corresponds to the beginning of the text associated with this accessible. Returns: S_OK is returned if an ancestor accessible implements IAccessibleText. S_FALSE is returned if no ancestor node implementing IAccessibleText are found; [out] value is -1. On 2/6/13 8:55 PM, Alexander Surkov wrote: Hi, Pete. if a parent accessible implements and if no parent nodes implementing IAccessibleText are found sounds ambiguously. 1st assumes an immediate parent, 2nd assumes an accessible from the parent chain. I'm not sure about other IA2 implementation but in Firefox if the parent accessible doesn't implement IAccessibleText then this accessible can't be a text of some other accessible from the parent chain. In other words only 1st scenario is possible in Firefox. Thank you. Alex. On Thu, Feb 7, 2013 at 11:42 AM, Pete Brunet p...@a11ysoft.com wrote: Thanks Alex, How is this? HRESULT IAccessible2_2::offsetInParentText ( [out] long* offset ); Return text offset in parent. Determine the parent accessible which implements IAccessibleText and return the offset in that object which corresponds to the beginning of the text associated with this accessible. Returns: S_OK is returned if a parent accessible implements IAccessibleText. S_FALSEis returned if no parent nodes implementing IAccessibleText are found; [out] value is -1. On 2/6/13 8:02 PM, Alexander Surkov wrote: Hi, Pete. The method looks ok. Few notes. If this accessible implements IAccessibleText then it can be a child of another IAccessibleText, in this case it also has associated text (embedded character) and thus it has valid offset. Btw, I would use -1 in case when there's no parent IAccessibleText instead of 0 since 0 is valid offset and it may be confusing (I saw S_FALSE which is reasonable but anyway). Thank you. Alex. On Thu, Feb 7, 2013 at 2:43 AM, Pete Brunet p...@a11ysoft.com wrote: Since there is a need for this and the solution is easy to implement it seems worth adding. Here is a draft for review. HRESULT IAccessible2_2::offsetInParentText ( [out] long* offset ); Return text offset in parent. Determine the parent accessible which implements IAccessibleText and return the offset in that object which corresponds to the beginning of the text associated with this accessible. If this accessible implements IAccessibleText, 0 will be returned. Returns: S_OK is returned if this accessible or a parent accessible implements IAccessibleText. S_FALSE is returned if no nodes implementing IAccessibleText are found; [out] value is 0. On 2/5/13 10:58 PM, Alexander Surkov wrote: Hi, Pete. Options were discussed: 1) make text leaf accessible implement IAccessibleText (I didn't like it, see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001731.html) 2) make text leaf accessible implement IAccessibleHyperLink (I didn't like it, see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001731.html) 3) add a new method DescendantOffset(IAccessible* acc, long* offset) like Brett suggested (see http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001729.html). I don't mind. It's easy to implement. 4) do nothing (Jamie mentioned that pure IAccessibleText/HyperLink/HyperText should work also as alternative approach to the approach described by Brett, but here we probably run into restrictions of proprietary softwares). Thank you. Alex. On Wed, Feb 6, 2013 at 2:31 AM, Pete Brunet p...@a11ysoft.com wrote: To all, Please review the thread Brett started at: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001729.html to see if any further progress can be made on this issue. On 2/5/13 8:46 AM, Brett Lewis wrote: Hi, I wish we could get it in but it definitely sounded like there was no consensus on the issue, so let's let it go. Thanks, Brett From: Pete Brunet [mailto:p...@a11ysoft.com] Sent: Monday, February 04, 2013 7:02 PM To: Brett Lewis Cc: IAccessible2 mailing list Subject: Re: [Accessibility-ia2] Plea for a new function Hi Brett, Is this still an issue for you? We're very near the end of discussions for IA2 1.3 and wanted to see if more discussion is needed on this issue. -Pete On 11/26/12 7:03 PM, James Teh wrote: On 27/11/2012 8:02 AM, Brett Lewis wrote: I am getting the Iaccessible tree. I then find that I want the text attributes for one of my leaf nodes and find that I have to go back up the Iaccessible tree
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 2/4/13 11:13 PM, Pete Brunet wrote: On 2/4/13 5:20 PM, Richard Schwerdtfeger wrote: Partially. So, cut, copy copy selected text to the clipboard. The details are handled by the rouser. Paste pasts to selected text or the insertion point (collapsed selection). What is the concern about clipboard functionality? I'll have to dig through a month's worth of discussion on the list back in June 2011. I'll try to get to that at some point during the week. If you have time to look at it sooner look through the thread with subject, next changes to IAccessible2 here: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2011-June/thread.html There are a lot of topics in that thread and I'll try to separate out and summarize the clipboard discussion later, but there is also a following discussion which starts here: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2011-July/001495.html and one more post here: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-February/001561.html Rich Sent from my iPad On Feb 4, 2013, at 10:18 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: On 2/4/13 4:56 PM, Richard Schwerdtfeger wrote: Did you check with Nuance? What appends if replacetext is removed? If you have a contact at Nuance please ask them to join the list. Only the clipboard methods are deprecated, which bascially means don't use the cut/copy/paste methods until the IA2 spec can be changed to support the varying implementations and ambiguities of clipboard functionality. The rest of the methods are not deprecated, i.e. deleteText, insertText, replaceText, and setAttributes. Does that clarification help at all? Even if Nuance has not implemented it for say FF has someone approached them? We can' t just be supporting vision impairments. Sent from my iPad On Feb 4, 2013, at 9:35 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: Hi Rich, At this point, since we couldn't find consensus and since this release was supposed to done last Fall and since I was informed that noone has implemented or shown a need for the three clipboard operations, I'm inclined to not hold up the release any further and handle this in a follow-on release if a project comes along that needs clipboard functionality and provides resource to drive the spec toward a well thought out definition of the clipboard methods. Pete On 2/4/13 8:51 PM, Richard Schwerdtfeger wrote: Hi Pete, The reason for the editing functions was to allow a voice reco solution to select text, edit it, and perform clipboard operations for the mobility impaired. It is additional work to have a voice reco solution have to go through the additional work of doing the additional keyboard simulations for doing that function. So, these are single actions. AccessibleEditableText also allows you to replace text, and set attributes, which takes offsets and replacement text/attributes. Accessible actions are single action functions that don't take parameters. ReplaceText is not the same as pasting from the clipboard. It is really nice to have all the features in the same interface. Note: One could bind the single command functions (cut, copy, paste) to the same actions in accessible actions. The other problem you have with actions is where do you apply it. Do you know to apply it only to the document. If Editable text is applied to text content within the document then you should now where to find the interface. Rich Rich Schwerdtfeger -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 2/5/13 8:31 AM, Brian Cragun wrote: In those threads, I had asked for 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. http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2011-June/001336.html This was from Carolyn McLeod who needed it in Eclipse for cut and paste. Hi Brian, On 27 June 2011 in this post http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2011-June/001408.html Carolyn said, 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. Brian Cragun IBM Master Inventor IBM AbilityLab Consultant Human Ability Accessibility Center_ __www.ibm.com/able_ http://www.ibm.com/able _w3.ibm.com/able_ http://w3.ibm.com/able W:(720)-663-2801 H:(507)288-2437 */Subscribe to RSS feed and contribute to/**/Accessibility News community/* http://w3.ibm.com/connections/communities/service/html/communityview?communityUuid=136047f0-6cda-4a2a-9a90-2188047a542a*/on Connections/* _IBM Accessibility_ http://www.facebook.com/IBMAccessibilityon Facebook ▼_IBMAccess_ http://twitter.com/IBMAccesson Twitter ▼_IBM Accessibility_ http://www.linkedin.com/e/vgh/2419815/on LinkedIn From: Pete Brunet p...@a11ysoft.com To: Richard Schwerdtfeger/Austin/IBM@IBMUS, Cc: IAccessible2 mailing list accessibility-ia2@lists.linuxfoundation.org Date: 02/04/2013 11:14 PM Subject: Re: [Accessibility-ia2] IA2 1.3 ready for review Sent by: accessibility-ia2-boun...@lists.linuxfoundation.org On 2/4/13 5:20 PM, Richard Schwerdtfeger wrote: Partially. So, cut, copy copy selected text to the clipboard. The details are handled by the rouser. Paste pasts to selected text or the insertion point (collapsed selection). What is the concern about clipboard functionality? I'll have to dig through a month's worth of discussion on the list back in June 2011. I'll try to get to that at some point during the week. If you have time to look at it sooner look through the thread with subject, next changes to IAccessible2 here:_ __http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2011-June/thread.html_ Rich Sent from my iPad On Feb 4, 2013, at 10:18 PM, Pete Brunet _pete@a11ysoft.com_ mailto:p...@a11ysoft.com wrote: On 2/4/13 4:56 PM, Richard Schwerdtfeger wrote: Did you check with Nuance? What appends if replacetext is removed? If you have a contact at Nuance please ask them to join the list. Only the clipboard methods are deprecated, which bascially means don't use the cut/copy/paste methods until the IA2 spec can be changed to support the varying implementations and ambiguities of clipboard functionality. The rest of the methods are not deprecated, i.e. deleteText, insertText, replaceText, and setAttributes. Does that clarification help at all? Even if Nuance has not implemented it for say FF has someone approached them? We can' t just be supporting vision impairments. Sent from my iPad On Feb 4, 2013, at 9:35 PM, Pete Brunet _pete@a11ysoft.com_ mailto:p...@a11ysoft.com wrote: Hi Rich, At this point, since we couldn't find consensus and since this release was supposed to done last Fall and since I was informed that noone has implemented or shown a need for the three clipboard operations, I'm inclined to not hold up the release any further and handle this in a follow-on release if a project comes along that needs clipboard functionality and provides resource to drive the spec toward a well thought out definition of the clipboard methods. Pete On 2/4/13 8:51 PM, Richard Schwerdtfeger wrote: Hi Pete, The reason for the editing functions was to allow a voice reco solution to select text, edit it, and perform clipboard operations for the mobility impaired. It is additional work to have a voice reco solution have to go through the additional work of doing the additional keyboard simulations for doing that function. So, these are single actions. AccessibleEditableText also allows you to replace text, and set attributes, which takes offsets and replacement text/attributes. Accessible actions are single action functions that don't take parameters. ReplaceText is not the same as pasting from the clipboard. It is really nice to have all the features in the same interface. Note: One could bind the single command functions (cut, copy, paste) to the same actions in accessible actions. The other problem you have with actions is where do you apply it. Do you know to apply it only to the document. If Editable text is applied to text content within the document then you should now
Re: [Accessibility-ia2] Plea for a new function
To all, Please review the thread Brett started at: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2012-November/001729.html to see if any further progress can be made on this issue. On 2/5/13 8:46 AM, Brett Lewis wrote: Hi, I wish we could get it in but it definitely sounded like there was no consensus on the issue, so let's let it go. Thanks, Brett *From:* Pete Brunet [mailto:p...@a11ysoft.com] *Sent:* Monday, February 04, 2013 7:02 PM *To:* Brett Lewis *Cc:* IAccessible2 mailing list *Subject:* Re: [Accessibility-ia2] Plea for a new function Hi Brett, Is this still an issue for you? We're very near the end of discussions for IA2 1.3 and wanted to see if more discussion is needed on this issue. -Pete On 11/26/12 7:03 PM, James Teh wrote: On 27/11/2012 8:02 AM, Brett Lewis wrote: I am getting the Iaccessible tree. I then find that I want the text attributes for one of my leaf nodes and find that I have to go back up the Iaccessible tree to find the nearest Iaccessible node that allow QI to IAccessibleText and then trying to figure out how to map the result back down to my Iaccessible leaf node. If you can, for Mozilla, it's best to ignore leaf nodes altogether; i.e. pretend they don't exist. That way, you're only dealing with nodes that support IAccessibleText. However, there may well be a good reason you can't do this. Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 10/10/12 2:07 AM, Alexander Surkov wrote: Hi, Jamie. Answering inline. 5) Document that copyText, cutText, and pasteText are deprecated. Can you please refresh me on it? The reason specified is This function is available via the application's GUI. but it seems it can be applied to the whole IAccessibleEditableText interface. I believe there was some talk a while ago about making these all actions which can be triggered using the standard action mechanism. This would require a way to perform an action given a constant. It is why the idea of using negative action indices came up. It seems it doesn't answer why we can't turn out the whole IAccessibleEditableText interface into actions. Btw, I would prefer doAction taking a BSTR rather than negative constant. Otherwise we should standardize all possible actions and we don't leave a room for the server to introduce non-standard actions. 6) IAccessibleHypertext2::hyperlinks. Just to make sure: we decided to go with array instead EnumVariant? Do AT want to get all items at once even if the document is big and has many links? It seems we didn't go with EnumVariant at all but we added maxCount 'in' argument. Should we have it here as well? Hi Alex, I assume you are referring to IAccessible2_2::relationTargetsOfType which along with IAccessible2::relations and IAccessibleRelation::targerts are the only methods with a valid max count [in] parameter. (There are several others but those methods were coded in error and their max count [in] parameters are to be ignored.) IAccessibleHypertext2::hyperlinks doesn't have a max [in] parameter and Jamie said in a followup note that he's unaware of any need for one. 7) IA2_RELATION_GROUPING_OBJECT_FOR: This object is a grouping object for the target object. - it'd be nice to give a hint for implementers. After a time I don't really remember what is it about :) I guess a grouping object/container would expose this relation referring to all objects it contains. Is this really useful? It'd be nice to have examples. Does it applicable to HTML fieldset and HTML form? Should it include the element connected by node_child_of relation if the element is not a descendant? Thank you. Alex. On Wed, Oct 10, 2012 at 3:39 PM, James Teh ja...@nvaccess.org wrote: On 24/09/2012 2:52 PM, Alexander Surkov wrote: 5) Document that copyText, cutText, and pasteText are deprecated. Can you please refresh me on it? The reason specified is This function is available via the application's GUI. but it seems it can be applied to the whole IAccessibleEditableText interface. I believe there was some talk a while ago about making these all actions which can be triggered using the standard action mechanism. This would require a way to perform an action given a constant. It is why the idea of using negative action indices came up. 6) IAccessibleHypertext2::hyperlinks. Just to make sure: we decided to go with array instead EnumVariant? Do AT want to get all items at once even if the document is big and has many links? Isn't that the whole point of this method? Otherwise, wouldn't IAccessibleHypertext::hyperlink be enough? Maybe I'm missing something... 7) IA2_RELATION_GROUPING_OBJECT_FOR: This object is a grouping object for the target object. - it'd be nice to give a hint for implementers. After a time I don't really remember what is it about :) I guess a grouping object/container would expose this relation referring to all objects it contains. Is this really useful? 9) Description for IA2_RELATION_POPUP_INITIATOR_FOR doesn't make things really clear for implementers too. Yeah; I have no idea what this is for. :) Btw, the used string is popInitiatorFor, Looks like a typo to me. Thanks, Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 2/4/13 5:13 PM, Pete Brunet wrote: Hi Alex, I am going to try to get some momentum going on this again... On 9/23/12 11:52 PM, Alexander Surkov wrote: Hi, Pete. Here's my two cents. 1) It makes sense to allow IAccessible2_2::attribute to take sequence of attribute names like margin-left;margin-right; to get these attribute values for a single call. Is this important enough to add additional development effort for server side implementers? 2) It'd be nice to add a reference to relation constants for relationTargetsOfType method description, see [in] type The requested relation type. Done. 3) Any specific reason to use long for nTargets in relationTargetsOfType since it seems it never takes negative values? It's a good point, but since an unsigned long wasn't used anywhere else it seems like at least for the sake of consistency to leave it as is. 4) Should we keep IAccessibleDocument restricted to HTML documents? After all HTML sounds like an implementation detail. The idea it serves to is when the loaded document shouldn't be read from the beginning. I changed it to: /** @brief Returns the most recently used anchor target within a document. A document's most recently targeted in-page anchor is returned. A typical use of this method is to fetch the anchor target within an HTML document. In this case anchor targets are those which has been defined with the a tag. 5) Document that copyText, cutText, and pasteText are deprecated. Can you please refresh me on it? The reason specified is This function is available via the application's GUI. but it seems it can be applied to the whole IAccessibleEditableText interface. This was a long discussion involving several people back in June 2011 from the 7th to the 29th and this is what we ended up with. It was determined that the three deprecated methods are clipboard operations and there are too many differences and ambiguities in how applications implement their clipboard functionality. Also copy/cut/paste methods are not in use while the other ones are so we can't deprecate the entire interface. We also talked about adding, if needed at some later date, five new actions for cut, copy, pasteDefault, pasteFormatted, pasteUnformatted. 6) IAccessibleHypertext2::hyperlinks. Just to make sure: we decided to go with array instead EnumVariant? Do AT want to get all items at once even if the document is big and has many links? Back on 14 Aug 2012 you agreed that the array would be preferred in order to keep it consistent with the array returned by IAccessible2_2::relationTargetsOfType. 7) IA2_RELATION_GROUPING_OBJECT_FOR: This object is a grouping object for the target object. - it'd be nice to give a hint for implementers. After a time I don't really remember what is it about :) Actually this got into this draft of the spec by mistake. We agreed it was not needed back on 1 March 12. Ditto with IA2_RELATION_POPUP_INITIATOR_FOR. I removed them both. 8) IA2_RELATION_NODE_PARENT_OF This object is a parent of a target object. It's not clear as well since it doesn't answer why get_accParent doesn't work. Maybe you should say it's a logical parent and the relation is reverse to RELATION_NODE_CHILD_OF. It is used, for example, for flat structured trees. I could remove it. Noone else showed interest in it other than for symmetry with IA2_RELATION_NODE_CHILD_OF. The comment about get_accParent is a good one. You asked for this new relation back on 9 Nov 09 because you added it for ATK and wanted to enhance the symmetry between the ATK and IA2 interfaces. Or I could just add another sentence, This relation is the reciprocal of IA2_RELATION_NODE_CHILD_OF. I didn't understand the comment about flat structured trees but if you want to keep this relation please provide an additional sentence. 9) Description for IA2_RELATION_POPUP_INITIATOR_FOR doesn't make things really clear for implementers too. Btw, the used string is popInitiatorFor, I'm not sure if this is on demand, should it be popupInitiatorFor instead? Removed. See #7. 10) Both IAccessibleHypertext and IAccessibleText are marked as deprecated (see http://a11ysoft.com/ia2/docs/html/), however IAccessibleHypertext2 and IAccessibleText2 are inherited from them. What does deprecation mean here? Thanks for noticing that Alex. Does anyone see any issues if I remove the inheritance? Actually I should not remove the inheritance. I'll remove the text indicating deprecation. Thank you. Alex. On Fri, Sep 21, 2012 at 11:22 AM, Pete Brunet p...@a11ysoft.com wrote: I finished up the IA2 1.3 work over the weekend but due to some changes on the LF web site am unable to post it there. I've provided it at a11ysoft.com. Please review it. I won't get to the object attributes until later (to add explicit-name). documentation: http://a11ysoft.com/ia2/docs/html zip file: http://a11ysoft.com/ia2.zip The one bug I see
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 10/10/12 1:29 AM, James Teh wrote: Hi all, Sorry for taking so long. Here is my feedback: Accessible2.idl: IAccessible2 has been removed from the Interfaces section. It should still be included. (I see Pete has already acknowledged this.) I'm not sure it makes sense to say the older interfaces (except IAccessibleTable, which has essentially been completely replaced) are deprecated, as the newer ones subclass them. I've removed the deprecated text from IAHypertext and IAText. I think it still make sense to indicate IARelation is deprecated. The IAccessible2 interface still contains the modifications relevant to IAccessible2_2. Specifically, the max parameters for extendedStates and localizedExtendedStates have been removed and the new methods attribute, accessibleWithCaret and relationTargetsOfType have been added. I assume this was unintentional in this latest version. This critical, as it will breka binary compatibility. Yes, That was unintentional. I diffed the old and new IAccessible2 and fixed the problems. AccessibleDocument.idl: Regarding IAccessibleDocument::anchorTarget, I wonder whether a relation fits here, which would eliminate the need for this interface. I think this was discussed before, but I can't remember why this idea was dropped. After all, it just returns an accessible. Back on 12 Feb 12 you said: I feel a relation fits well enough here, but I don't feel strongly enough about it to fight for it if others disagree. I'd pose the question: what makes this so special as to justify a new method? Why is it more special than, say, flowsTo or labelledBy? I guess it doesn't fit relations entirely, as it isn't strictly related so much as state information. If that argument is consensus, fair enough. And I responded: Thanks Jamie, It appears there is no strong preference by anyone for any of the various options. Your observation about state vs relationship is interesting and is enough to motivate me to choose a method over a relation. AccessibleHypertext2.idl: The comments for the IAccessibleHypertext2 interface say: The %IAccessibleHypertext interface is the main interface to expose hyperlinks in a document, typically a text document... This is a bit confusing, as this documentation is for IAccessibleHypertext2, not IAccessibleHypertext. It should probably just mention that this extends IAccessibleHypertext. The same goes for IAccessibleText2. Thanks Jamie, I fixed that. I'll reply to Alex's feedback separately. Thanks, Jamie On 21/09/2012 12:22 PM, Pete Brunet wrote: I finished up the IA2 1.3 work over the weekend but due to some changes on the LF web site am unable to post it there. I've provided it at a11ysoft.com. Please review it. I won't get to the object attributes until later (to add explicit-name). documentation: http://a11ysoft.com/ia2/docs/html zip file: http://a11ysoft.com/ia2.zip The one bug I see so far is that I don't have a link for the IAccessible2 interface on the main page. That is at: http://www.a11ysoft.com/ia2/docs/html/interface_i_accessible2.html The zip file contains everything I'll eventually post on the LF site, among other things, changelog.txt and the merged IDL file, ia2_api_all.idl. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Plea for a new function
Hi Brett, Is this still an issue for you? We're very near the end of discussions for IA2 1.3 and wanted to see if more discussion is needed on this issue. -Pete On 11/26/12 7:03 PM, James Teh wrote: On 27/11/2012 8:02 AM, Brett Lewis wrote: I am getting the Iaccessible tree. I then find that I want the text attributes for one of my leaf nodes and find that I have to go back up the Iaccessible tree to find the nearest Iaccessible node that allow QI to IAccessibleText and then trying to figure out how to map the result back down to my Iaccessible leaf node. If you can, for Mozilla, it's best to ignore leaf nodes altogether; i.e. pretend they don't exist. That way, you're only dealing with nodes that support IAccessibleText. However, there may well be a good reason you can't do this. Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 2/4/13 8:52 PM, Alexander Surkov wrote: Hi, Pete. It looks good. Perhaps I'd change In some cases an application's accessible tree is such that an object can have a logical parent which is not its parent in the tree of accessibles. to ... such that objects can be in a logical parent-child relationship which is different from hierarchy in the accessible tree. Thanks Alex, I changed the text. Thank you. Alex. On Tue, Feb 5, 2013 at 11:46 AM, Pete Brunet p...@a11ysoft.com wrote: On 2/4/13 8:16 PM, Alexander Surkov wrote: Hi, Pete. Thank you for getting back on this. Answering inline. 1) It makes sense to allow IAccessible2_2::attribute to take sequence of attribute names like margin-left;margin-right; to get these attribute values for a single call. Is this important enough to add additional development effort for server side implementers? Let's leave it out of IA2 1.3. Otherwise I afraid we never get it done. If the feature is needed by AT then it can be prototyped in the browser before we put it into spec since it doesn't require the interface changes. 3) Any specific reason to use long for nTargets in relationTargetsOfType since it seems it never takes negative values? It's a good point, but since an unsigned long wasn't used anywhere else it seems like at least for the sake of consistency to leave it as is. I don't mind. 6) IAccessibleHypertext2::hyperlinks. Just to make sure: we decided to go with array instead EnumVariant? Do AT want to get all items at once even if the document is big and has many links? Back on 14 Aug 2012 you agreed that the array would be preferred in order to keep it consistent with the array returned by IAccessible2_2::relationTargetsOfType. If I agreed then ok :) It seems our discussion is many years long. I can hardly remember where we started from. I think my point was that obtaining all hyperlinks can be slow. If it is an issue then we can address it the next round if necessary. 8) IA2_RELATION_NODE_PARENT_OF This object is a parent of a target object. It's not clear as well since it doesn't answer why get_accParent doesn't work. Maybe you should say it's a logical parent and the relation is reverse to RELATION_NODE_CHILD_OF. It is used, for example, for flat structured trees. I could remove it. Noone else showed interest in it other than for symmetry with IA2_RELATION_NODE_CHILD_OF. The comment about get_accParent is a good one. You asked for this new relation back on 9 Nov 09 because you added it for ATK and wanted to enhance the symmetry between the ATK and IA2 interfaces. Or I could just add another sentence, This relation is the reciprocal of IA2_RELATION_NODE_CHILD_OF. I didn't understand the comment about flat structured trees but if you want to keep this relation please provide an additional sentence. We shouldn't remove it. It's needed for sync with ATK. Also this constant was settled down in ARIA spec implementation guide already :) If you use logical parent instead parent (i.e. not a parent in the accessible tree) then it should be fine. It can sound This object is a logical parent of a target object. This relation is the reciprocal of IA2_RELATION_NODE_CHILD_OF. About flat trees. The accessible tree may look like: div role=tree div role=treeitem level=1item/div div role=treeitem level=2sub item/div /div in this case parent for 'item' and 'subitem' is 'tree' but logical parent of 'subitem' is 'item'. I updated the comments as follows. Please review. /** This object is a logical child of a target object. This relation is the reciprocal of the IA2_RELATION_NODE_PARENT_OF relation. In some cases an application's accessible tree is such that an object can have a logical parent which is not its parent in the tree of accessibles. */ const WCHAR *const IA2_RELATION_NODE_CHILD_OF = LnodeChildOf; /** This object is a logical parent of a target object. This relation is the reciprocal of the IA2_RELATION_NODE_CHILD_OF relation. In some cases an application's accessible tree is such that an object can have a logical parent which is not its parent in the tree of accessibles. */ const WCHAR *const IA2_RELATION_NODE_PARENT_OF = LnodeParentOf; Thank you. Alex. On Tue, Feb 5, 2013 at 8:13 AM, Pete Brunet p...@a11ysoft.com wrote: Hi Alex, I am going to try to get some momentum going on this again... On 9/23/12 11:52 PM, Alexander Surkov wrote: Hi, Pete. Here's my two cents. 1) It makes sense to allow IAccessible2_2::attribute to take sequence of attribute names like margin-left;margin-right; to get these attribute values for a single call. Is this important enough to add additional development effort for server side implementers? 2) It'd be nice to add a reference to relation constants for relationTargetsOfType method description, see [in] type The requested relation type. Done. 3) Any specific reason to use long for nTargets
Re: [Accessibility-ia2] IA2 1.3 ready for review
Hi Rich, At this point, since we couldn't find consensus and since this release was supposed to done last Fall and since I was informed that noone has implemented or shown a need for the three clipboard operations, I'm inclined to not hold up the release any further and handle this in a follow-on release if a project comes along that needs clipboard functionality and provides resource to drive the spec toward a well thought out definition of the clipboard methods. Pete On 2/4/13 8:51 PM, Richard Schwerdtfeger wrote: Hi Pete, The reason for the editing functions was to allow a voice reco solution to select text, edit it, and perform clipboard operations for the mobility impaired. It is additional work to have a voice reco solution have to go through the additional work of doing the additional keyboard simulations for doing that function. So, these are single actions. AccessibleEditableText also allows you to replace text, and set attributes, which takes offsets and replacement text/attributes. Accessible actions are single action functions that don't take parameters. ReplaceText is not the same as pasting from the clipboard. It is really nice to have all the features in the same interface. Note: One could bind the single command functions (cut, copy, paste) to the same actions in accessible actions. The other problem you have with actions is where do you apply it. Do you know to apply it only to the document. If Editable text is applied to text content within the document then you should now where to find the interface. Rich Rich Schwerdtfeger ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 2/4/13 4:56 PM, Richard Schwerdtfeger wrote: Did you check with Nuance? What appends if replacetext is removed? If you have a contact at Nuance please ask them to join the list. Only the clipboard methods are deprecated, which bascially means don't use the cut/copy/paste methods until the IA2 spec can be changed to support the varying implementations and ambiguities of clipboard functionality. The rest of the methods are not deprecated, i.e. deleteText, insertText, replaceText, and setAttributes. Does that clarification help at all? Even if Nuance has not implemented it for say FF has someone approached them? We can' t just be supporting vision impairments. Sent from my iPad On Feb 4, 2013, at 9:35 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: Hi Rich, At this point, since we couldn't find consensus and since this release was supposed to done last Fall and since I was informed that noone has implemented or shown a need for the three clipboard operations, I'm inclined to not hold up the release any further and handle this in a follow-on release if a project comes along that needs clipboard functionality and provides resource to drive the spec toward a well thought out definition of the clipboard methods. Pete On 2/4/13 8:51 PM, Richard Schwerdtfeger wrote: Hi Pete, The reason for the editing functions was to allow a voice reco solution to select text, edit it, and perform clipboard operations for the mobility impaired. It is additional work to have a voice reco solution have to go through the additional work of doing the additional keyboard simulations for doing that function. So, these are single actions. AccessibleEditableText also allows you to replace text, and set attributes, which takes offsets and replacement text/attributes. Accessible actions are single action functions that don't take parameters. ReplaceText is not the same as pasting from the clipboard. It is really nice to have all the features in the same interface. Note: One could bind the single command functions (cut, copy, paste) to the same actions in accessible actions. The other problem you have with actions is where do you apply it. Do you know to apply it only to the document. If Editable text is applied to text content within the document then you should now where to find the interface. Rich Rich Schwerdtfeger -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
The methods are replaced with IAccessible2_2::relationTargetsOfType. One of today's edits was to add text to the doxygen commentary pointing this out. Pete On 2/4/13 5:14 PM, Richard Schwerdtfeger wrote: It appears the relations were moved to the new ia22 interface. Is that why you are deprecating the relations interface? Sent from my iPad On Feb 4, 2013, at 10:15 PM, Richard Schwerdtfeger sch...@us.ibm.com mailto:sch...@us.ibm.com wrote: Whe are relations deprecated? They are used extensively in both FF, Chrome, and Symphony. Rich Sent from my iPad On Feb 4, 2013, at 8:32 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: On 10/10/12 1:29 AM, James Teh wrote: Hi all, Sorry for taking so long. Here is my feedback: Accessible2.idl: IAccessible2 has been removed from the Interfaces section. It should still be included. (I see Pete has already acknowledged this.) I'm not sure it makes sense to say the older interfaces (except IAccessibleTable, which has essentially been completely replaced) are deprecated, as the newer ones subclass them. I've removed the deprecated text from IAHypertext and IAText. I think it still make sense to indicate IARelation is deprecated. The IAccessible2 interface still contains the modifications relevant to IAccessible2_2. Specifically, the max parameters for extendedStates and localizedExtendedStates have been removed and the new methods attribute, accessibleWithCaret and relationTargetsOfType have been added. I assume this was unintentional in this latest version. This critical, as it will breka binary compatibility. Yes, That was unintentional. I diffed the old and new IAccessible2 and fixed the problems. AccessibleDocument.idl: Regarding IAccessibleDocument::anchorTarget, I wonder whether a relation fits here, which would eliminate the need for this interface. I think this was discussed before, but I can't remember why this idea was dropped. After all, it just returns an accessible. Back on 12 Feb 12 you said: I feel a relation fits well enough here, but I don't feel strongly enough about it to fight for it if others disagree. I'd pose the question: what makes this so special as to justify a new method? Why is it more special than, say, flowsTo or labelledBy? I guess it doesn't fit relations entirely, as it isn't strictly related so much as state information. If that argument is consensus, fair enough. And I responded: Thanks Jamie, It appears there is no strong preference by anyone for any of the various options. Your observation about state vs relationship is interesting and is enough to motivate me to choose a method over a relation. AccessibleHypertext2.idl: The comments for the IAccessibleHypertext2 interface say: The %IAccessibleHypertext interface is the main interface to expose hyperlinks in a document, typically a text document... This is a bit confusing, as this documentation is for IAccessibleHypertext2, not IAccessibleHypertext. It should probably just mention that this extends IAccessibleHypertext. The same goes for IAccessibleText2. Thanks Jamie, I fixed that. I'll reply to Alex's feedback separately. Thanks, Jamie On 21/09/2012 12:22 PM, Pete Brunet wrote: I finished up the IA2 1.3 work over the weekend but due to some changes on the LF web site am unable to post it there. I've provided it at a11ysoft.com http://a11ysoft.com. Please review it. I won't get to the object attributes until later (to add explicit-name). documentation: http://a11ysoft.com/ia2/docs/html zip file: http://a11ysoft.com/ia2.zip The one bug I see so far is that I don't have a link for the IAccessible2 interface on the main page. That is at: http://www.a11ysoft.com/ia2/docs/html/interface_i_accessible2.html The zip file contains everything I'll eventually post on the LF site, among other things, changelog.txt and the merged IDL file, ia2_api_all.idl. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org mailto:Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IA2 1.3 ready for review
On 2/4/13 5:20 PM, Richard Schwerdtfeger wrote: Partially. So, cut, copy copy selected text to the clipboard. The details are handled by the rouser. Paste pasts to selected text or the insertion point (collapsed selection). What is the concern about clipboard functionality? I'll have to dig through a month's worth of discussion on the list back in June 2011. I'll try to get to that at some point during the week. If you have time to look at it sooner look through the thread with subject, next changes to IAccessible2 here: http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2011-June/thread.html Rich Sent from my iPad On Feb 4, 2013, at 10:18 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: On 2/4/13 4:56 PM, Richard Schwerdtfeger wrote: Did you check with Nuance? What appends if replacetext is removed? If you have a contact at Nuance please ask them to join the list. Only the clipboard methods are deprecated, which bascially means don't use the cut/copy/paste methods until the IA2 spec can be changed to support the varying implementations and ambiguities of clipboard functionality. The rest of the methods are not deprecated, i.e. deleteText, insertText, replaceText, and setAttributes. Does that clarification help at all? Even if Nuance has not implemented it for say FF has someone approached them? We can' t just be supporting vision impairments. Sent from my iPad On Feb 4, 2013, at 9:35 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: Hi Rich, At this point, since we couldn't find consensus and since this release was supposed to done last Fall and since I was informed that noone has implemented or shown a need for the three clipboard operations, I'm inclined to not hold up the release any further and handle this in a follow-on release if a project comes along that needs clipboard functionality and provides resource to drive the spec toward a well thought out definition of the clipboard methods. Pete On 2/4/13 8:51 PM, Richard Schwerdtfeger wrote: Hi Pete, The reason for the editing functions was to allow a voice reco solution to select text, edit it, and perform clipboard operations for the mobility impaired. It is additional work to have a voice reco solution have to go through the additional work of doing the additional keyboard simulations for doing that function. So, these are single actions. AccessibleEditableText also allows you to replace text, and set attributes, which takes offsets and replacement text/attributes. Accessible actions are single action functions that don't take parameters. ReplaceText is not the same as pasting from the clipboard. It is really nice to have all the features in the same interface. Note: One could bind the single command functions (cut, copy, paste) to the same actions in accessible actions. The other problem you have with actions is where do you apply it. Do you know to apply it only to the document. If Editable text is applied to text content within the document then you should now where to find the interface. Rich Rich Schwerdtfeger -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Proposal for html5 media
Sylvia, After all our discussion we came to the consensus that no changes are needed to IA2 with the exception of adding three action constants. See http://lists.linuxfoundation.org/pipermail/accessibility-ia2/2011-July/001482.html I'm glad you posted because I had forgotten to add those constants. Pete On 10/8/12 9:14 PM, Silvia Pfeiffer wrote: Hi all, just getting back to this thread - did we manage to add this functionality to iAccessible2 1.3? Also, I wonder if we just re-use the play() and pause() functionality of the browser, whether we're going to cause triggering events for these that we would rather not. E.g. let's say a developer attaches the display of a custom message overlay to video.pause() which the user has to acknowledge. We wouldn't want a blind person to have to act on every single one of these just because they are using a screenreader that supports live regions for audio descriptions. Cheers, Silvia. On Fri, Jul 22, 2011 at 12:01 PM, James Teh ja...@nvaccess.org wrote: On 22/07/2011 11:32 AM, Silvia Pfeiffer wrote: Do we need a state to indicate if this is actually the requested way of dealing with over-long description cues? I mean: some users may want the interface to wait until presentationDone, but others may want the video to interrupt the aria-live reading and keep the video at real-time speed. If we did have such a state, what would set it? This would require the app (the browser) to know what the user preferred. There are two ways of doing this without the need for a new state: 1. The browser knows the user doesn't want the video to pause and resume due to descriptions, so it doesn't bother to set live:interactive or whatever we use; or 2. The AT knows the user doesn't want to pause/resume, so it just doesn't bother to open, signal completion or close the live region object. It's interesting for me to see that we want to do text descriptions actually with the aria-live feature rather than introduce another feature that just behaves almost the same as aria-live. I'm happy if that works out! I think it's important to separate aria-live from live regions as a general concept. Personally, I see them as separate (but related). aria-live is just one particular implementation or producer of live regions. Live regions could just as well be used by desktop applications that have nothing at all to do with the web (and thus ARIA). I think it makes sense to generalise concepts and extend existing features, rather than introducing entirely new ones that do very similar things. It makes the feature more flexible in the longrun, as well as making implementation simpler for everyone. Jamie -- James Teh Vice President, Developer NV Access Inc, ABN 61773362390 Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] IA2 1.3 ready for review
I finished up the IA2 1.3 work over the weekend but due to some changes on the LF web site am unable to post it there. I've provided it at a11ysoft.com. Please review it. I won't get to the object attributes until later (to add explicit-name). documentation: http://a11ysoft.com/ia2/docs/html zip file: http://a11ysoft.com/ia2.zip The one bug I see so far is that I don't have a link for the IAccessible2 interface on the main page. That is at: http://www.a11ysoft.com/ia2/docs/html/interface_i_accessible2.html The zip file contains everything I'll eventually post on the LF site, among other things, changelog.txt and the merged IDL file, ia2_api_all.idl. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessible2_2 inherits from IAccessible
Thanks. I'll change it so IA2_2, IAHypertext2, and IAText2 inherit from their predecessors. -Pete On 9/12/12 1:44 AM, Alexander Surkov wrote: Inheritance seems to more comfortable for consumers since they can save QI thing. On the another hand each IA2 object acquires 4 more bytes. It seems each approach has benefits but it's reasonable to follow Jamie's suggestion. Thank you. Alex. On Wed, Sep 12, 2012 at 8:04 AM, Pete Brunet p...@a11ysoft.com wrote: On 9/11/12 5:36 PM, James Teh wrote: On 12/09/2012 12:45 AM, Pete Brunet wrote: In the prior release I didn't do that for IATable2, but your request makes sense and I can make that change for IAccessible2_2. I think it's okay for IATable2 because the interface had a very specific purpose and was a fairly radical change from the older interface; i.e. it wasn't mostly duplicate methods. In contrast, IA2 is a rather broad interface and IA2_2 duplicates most of IA2. What is your opinion for IAText2 and IAHypertext2? Iirc, they only introduce new methods (rather than radically changing the fundamentals of the interface), so they should just contain new methods. Again, the question of inheritance is open. Personally, I have a slight preference for inheritance, but it's worth noting that with MSHTML, Microsoft doesn't inherit from the older interface; e.g. IHTMLElement2 doesn't inherit from IHTMLElement. Thanks for that input Jamie. I need some input from others on whether IAText2 and IAHypertext2 should inherit from their prior versions. IAHypertext adds the hyperlinks (plural) method. IAText2 adds the attributeRange method. Same question re IA2_2 and whether it should inherit from IA2. There are 3 new methods: attribute (by type), accessibleWithCaret, and relationTargetsOfType. Pete Jamie -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] object attributes as VARAINT
On 9/9/12 3:11 AM, James Teh wrote: Hi. This does make sense, though there are a few issues: 1. This creates inconsistency between fetching all attributes at once and fetching a single attribute. Maybe this isn't important; I'm not sure. 2. Most of the integer attributes aren't strictly integers across the spec and various implementations. For example, Firefox seems to provide units in px, but I'm pretty sure the spec says mm. As for creating extra work for implementers, even in C++, working with basic VARIANTs isn't too difficult. In some ways, parsing strings is probably harder. I was thinking of the extra work related to the fact that there would be one set of code to build up the full attribute string and another to create the VARIANT, but maybe the hard part was to create the full attribute string and the trivial part is to create the VARIANT. I don't mind using a VARIANT, but based on my work situation it would be best if someone took on the job of updating the wiki document to include what is returned by IA2_2::attribute for each object attribute. Jamie On 8/09/2012 10:38 AM, Pete Brunet wrote: Hi Alex, At least from the perspective of the spec I don't have time to make this change, i.e. I think it would take quite a bit of time for me to specify which VARIANT type is returned for each of the attributes in the spec. Some else could pick up that work though. Updating the method from BSTR to VARIANT would be easy enough though. Is this also extra work for the implementers? -Pete On 9/7/12 7:20 PM, Alexander Surkov wrote: Hi. Since we are going to introduce a method that allows to fetch object attribute by name then it should be nice if we are able to return typed value. For example, if the AT wants a margin-top object attribute then the server could return an integer. Thank you. Alex. -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] object attributes as VARAINT
Hi Alex, I looked through all the object attributes (existing as documented in the wiki plus the new ones we've recently documented as additions) and the only non-string type I found was the list level which is an integer, but it's a sub-attribute which would not be returned by itself. Since there are no non-string attributes it makes sense that the IA2_2::attribute (by type) method should return a BSTR. -Pete On 9/12/12 8:15 PM, Alexander Surkov wrote: I was thinking of the extra work related to the fact that there would be one set of code to build up the full attribute string and another to create the VARIANT, but maybe the hard part was to create the full attribute string and the trivial part is to create the VARIANT. Indeed it adds complexity for implementers. The point of VARIANT is to avoid int to string (browser) and string to int (AT) conversions. After all this method is just an extension of API which allows to keep the conversations between the server and AT faster, thus if the server decides to implement only canonical version then it keeps working. I don't mind using a VARIANT, but based on my work situation it would be best if someone took on the job of updating the wiki document to include what is returned by IA2_2::attribute for each object attribute. I'd suggest to do that after prototyping so we don't do mistakes in hurry. Let's say the string is expected for now and VARIANT is reserved for the future. Alex. On Thu, Sep 13, 2012 at 1:56 AM, Pete Brunet p...@a11ysoft.com wrote: On 9/9/12 3:11 AM, James Teh wrote: Hi. This does make sense, though there are a few issues: 1. This creates inconsistency between fetching all attributes at once and fetching a single attribute. Maybe this isn't important; I'm not sure. 2. Most of the integer attributes aren't strictly integers across the spec and various implementations. For example, Firefox seems to provide units in px, but I'm pretty sure the spec says mm. As for creating extra work for implementers, even in C++, working with basic VARIANTs isn't too difficult. In some ways, parsing strings is probably harder. I was thinking of the extra work related to the fact that there would be one set of code to build up the full attribute string and another to create the VARIANT, but maybe the hard part was to create the full attribute string and the trivial part is to create the VARIANT. I don't mind using a VARIANT, but based on my work situation it would be best if someone took on the job of updating the wiki document to include what is returned by IA2_2::attribute for each object attribute. Jamie On 8/09/2012 10:38 AM, Pete Brunet wrote: Hi Alex, At least from the perspective of the spec I don't have time to make this change, i.e. I think it would take quite a bit of time for me to specify which VARIANT type is returned for each of the attributes in the spec. Some else could pick up that work though. Updating the method from BSTR to VARIANT would be easy enough though. Is this also extra work for the implementers? -Pete On 9/7/12 7:20 PM, Alexander Surkov wrote: Hi. Since we are going to introduce a method that allows to fetch object attribute by name then it should be nice if we are able to return typed value. For example, if the AT wants a margin-top object attribute then the server could return an integer. Thank you. Alex. -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessible2_2 inherits from IAccessible
Thanks Jamie, I can make that change. In the prior release I didn't do that for IATable2, but your request makes sense and I can make that change for IAccessible2_2. What is your opinion for IAText2 and IAHypertext2? I'll work on this over the weekend and hopefully have something ready for next week. Pete On 9/10/12 9:02 PM, James Teh wrote: Hi Pete and all, I can't remember whether this has been covered before, but I think completely replacing IAccessible2 with IAccessible2_2 rather than just extending will make life very difficult for both AT and app developers alike. I understand that it'd be nice to clean up IAccessible2 by removing deprecated methods and parameters. However, the reality is that IAccessible2_2 isn't going to be implemented by every vendor overnight and we will still need to deal with IAccessible2 in older versions of apps even if/once it is. With the current IAccessible2_2 approach, every vendor will have to implement all of the duplicated methods twice, once for IAccessible2 and once for IAccessible2_2. It essentially has to be treated as a new API even though most of the methods are the same. The deprecated methods in IAccessible2 obviously still need to be marked as deprecated. I think IAccessible2_2 should just contain the new methods. Whether it inherits from IAccessible2 is an open question and doesn't matter as much. I think this would make sense, but I'm happy either way. Thoughts? Jamie On 8/09/2012 10:43 AM, Pete Brunet wrote: I am creating IAccessible2_2 to make some changes: - add accessibleWithCaret - add relationTargetsOfType - remove nRelations/relation/relations - add attribute // return object attribute by name - remove unused [in] parameter on extendedStates and localizedExtendedStates I could also change this to remove the unneeded inheritance from IAccessible, but that might cause too much work for those reworking code from IAccessible2. Is that true? Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessible2_2 inherits from IAccessible
On 9/11/12 5:36 PM, James Teh wrote: On 12/09/2012 12:45 AM, Pete Brunet wrote: In the prior release I didn't do that for IATable2, but your request makes sense and I can make that change for IAccessible2_2. I think it's okay for IATable2 because the interface had a very specific purpose and was a fairly radical change from the older interface; i.e. it wasn't mostly duplicate methods. In contrast, IA2 is a rather broad interface and IA2_2 duplicates most of IA2. What is your opinion for IAText2 and IAHypertext2? Iirc, they only introduce new methods (rather than radically changing the fundamentals of the interface), so they should just contain new methods. Again, the question of inheritance is open. Personally, I have a slight preference for inheritance, but it's worth noting that with MSHTML, Microsoft doesn't inherit from the older interface; e.g. IHTMLElement2 doesn't inherit from IHTMLElement. Thanks for that input Jamie. I need some input from others on whether IAText2 and IAHypertext2 should inherit from their prior versions. IAHypertext adds the hyperlinks (plural) method. IAText2 adds the attributeRange method. Same question re IA2_2 and whether it should inherit from IA2. There are 3 new methods: attribute (by type), accessibleWithCaret, and relationTargetsOfType. Pete Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Getting the document accessible
The new IDL for version 1.3 is pretty much ready to go. The only thing I haven't done is to add the 4 relations: IA2_RELATION_CONTAINING_DOCUMENT IA2_RELATION_CONTAINING_TAB IA2_RELATION_CONTAINING_WINDOW IA2_RELATION_CONTAINING_APPLICATION Is there an issue with plugin container or can that be handled via getting the parent? Pete On 9/9/12 3:13 AM, James Teh wrote: On 8/09/2012 10:14 AM, Alexander Surkov wrote: We had an issue with plugins (find a plugin container from plugin) but new relation might not be a fix here. Jamie? I don't believe a new relation is the correct solution. The plugin container really should be the parent of the plugin. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] ia2_api_all.idl
I was getting some errors when using ia2_api_all.idl (the merged API file) and to fix it I removed all the IDL files that have been deprecated, i.e. IA2, IATable, IAText, and IAHypertext which have been replaced with IA2_2, IATable2, IAText2, and IAHypertext2. Is that OK? With some more work I'm sure I could fix this if it's a problem but I don't want to spend the time if those old IDL files aren't needed in the merged IDL file. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Getting the document accessible
On 8/15/12 7:44 PM, James Teh wrote: As much as I'd love a way to search descendants quickly (in theory), one major problem with searching by attributes is that there are a lot of properties which aren't attributes; e.g. role and states. I don't really have a good alternative, but even if we make fake attributes for the purposes of searching (i.e. they aren't actually exposed as object attributes), this seems a bit contrary to the rest of the API. Also, is there a reason a relation doesn't fit for getting the document accessible? I missed responding to this. Using relations is OK with me and seems to be preferred. I assume this would be implemented on a particular object and then point to a particular kind of containing object and that there would need to be several kinds of relations, e.g. ones for document, tab, window, and application have been mentioned, e.g. IA2_RELATION_CONTAINING_DOCUMENT IA2_RELATION_CONTAINING_TAB IA2_RELATION_CONTAINING_WINDOW IA2_RELATION_CONTAINING_APPLICATION Are there others? Are these the right names, e.g. should it be TAB or TAB_PANE? Pete Jamie On 15/08/2012 4:02 PM, Alexander Surkov wrote: Hi, Pete. containerByAttrbute is OK with me, taking a BSTR like document:anchored; someOtherAttribute:someOtherValue; Do all of the attribute/value pairs have to be true? I missed the question. Regarding childrenByAttribute, although there hasn't been a request for this, should we add it? It should be good for reserve even if nobody raised a hand for it yet. AT should have a fast way to find children complying the certain criteria. Alex, Please explain the second, third, and fourth parameters: - [in] nsIAccessible* anchor Is this where to start the search? Why not just start the search from the current accessible? say if you look for children in the document from certain point, for example, you fetch all headings starting from heading #5 (because your virtual cursor is on it). If NULL then accessible itself. - [in] bool lookIntoSubtree Is this is false does that mean to only look into one level below the starting point? I think yes but I started to think it would be more flexible to keep it as integer so that we can introduce more constant when we need. Of course any criteria can be specified in the list attribute:value like lookIntoSubtree;. Jamie, ideas? - [in] long desiredChildrenAmount, What is the purpose of limiting the array? (There was a miscoding in the original IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, IAccessibleAction::keyBinding that included a maxMembers parameter, but this has been fixed for IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns, and IAccessibleTable2::selectedRows.) Idea of max count argument is performance win when AT doesn't need all items, it's similar to relations and hyperlinks we discussed recently. Indeed if you need next item then you shouldn't calculate all items. Thank you. Alex. On Tue, Aug 14, 2012 at 5:45 AM, Pete Brunet p...@a11ysoft.com wrote: I see we have a few things to finalize yet, one of which is this thread. containerByAttrbute is OK with me, taking a BSTR like document:anchored; someOtherAttribute:someOtherValue; Do all of the attribute/value pairs have to be true? Regarding childrenByAttribute, although there hasn't been a request for this, should we add it? Alex, Please explain the second, third, and fourth parameters: - [in] nsIAccessible* anchor Is this where to start the search? Why not just start the search from the current accessible? - [in] bool lookIntoSubtree Is this is false does that mean to only look into one level below the starting point? - [in] long desiredChildrenAmount, What is the purpose of limiting the array? (There was a miscoding in the original IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, IAccessibleAction::keyBinding that included a maxMembers parameter, but this has been fixed for IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns, and IAccessibleTable2::selectedRows.) I'd like to finalize all these discussions ASAP so we can finish off the 1.3 update so please comment. Pete On 3/4/12 9:44 PM, Alexander Surkov wrote: I find interesting the 5th option: containerOfAttributeValuePairs. It looks flexible. Its syntax covers 2-4 options. Not sure I like the name since it's pretty long (maybe containerByAttribute or selector? similar to DOM API). If we discuss the traversal API then we should consider an opposite method to get a children like childrenOfAttributeValuePairs (childrenByAttribute) that takes a point in accessible tree where we should start a search and returns an array of children like HRESULT childrenByAttribute( [in] BSTR attributes, [in] nsIAccessible* anchor, [in] bool lookIntoSubtree, [in] long desiredChildrenAmount, [out, array] nsIAccessible
Re: [Accessibility-ia2] Please review object attribute additions
On 8/21/12 4:51 AM, Alexander Surkov wrote: Hi, Pete. Few notes. 1) explicit-name description looks a little bit complicated. The following short sentence explains well the idea of the attribute: A true value indicates that the accessible name is different from, and more meaningful than, the text that is returned from IAccessibleText::text. How about if I put that single sentence in the comments field and then refer the reader to a note at the bottom of the list of attributes with the full text (minus that sentence) that we had previously agreed on? 2) sort. Comments: If the value is ascending or descending this indicates that an object's items are sorted and the sorting algorithm used. why is items are sorted not enough and it makes sense to mention the sorting algorithm? I changed it to the text from Jamie's following post: The value can be either ascending or descending and indicates the order in which an object's items are sorted. 3) atomic True when all the objects in the accessibility tree below this object should be presented as a whole maybe from subtree instead in the accessibility tree below this object? 4) event-from-input. It's worth to notice that it works in-process only since it doesn't make much sense for out-of-process client (two different events may be targeted to the same object). Thank you. Alex. On Thu, Aug 16, 2012 at 2:04 PM, Pete Brunet p...@a11ysoft.com wrote: Here is a list of some new IA2 object attributes. Thanks for a pre-review by Alex and Jamie. Please review these additions. The current set is listed at: https://www.linuxfoundation.org/collaborate/workgroups/Accessibility/IAccessible2/ObjectAttributes In new section, Common Attributes Name: explicit-name Values: true, false Default: false Reference: Comments: (see the following) Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name in preference to the object's primary text. A true value indicates that the accessible name is different from, and more meaningful than, the text that is returned from IAccessibleText::text. Typically an object's accessible name is taken directly from the object's textual content and is equivalent to the text from IAccessibleText::text, but a true value is returned when the server has chosen to use ancillary text rather than the accessible's primary textual content when generating the accessible name. Some examples that could be seen in an IAccessible2 implementation of a web browser are: 1) a href=http://www.adomain.com;content/a In this case the accessible name will be content and explicit-name will be false. 2) a href=http://www.adomain.com; title=a titlecontent/a If the title text is used for the accessible name, explicit-name will be true. 3) a href=http://www.adomain.com; aria-label=a labelcontent/a If the aria-label text is used for accessible name, explicit-name will be true. 4) div id=labela label/divdiv role=radio aria-labelledby=labelcontent/div If the label text is used for the accessible name, explicit-name will be true. If this value is true assistive technology may choose to present the user with the accessible name rather than the text from IAccessibleText::text. and these from the Gecko spec at https://developer.mozilla.org/en-US/docs/Accessibility/AT-APIs/Gecko/Attrs Name: draggable Values: true, false Default: false Reference: Comments: true when the accessible object can be grabbed. Name: dropeffect Values: copy, move, link, execute, popup, none Default: none Reference: http://www.w3.org/TR/wai-aria/states_and_properties#aria-dropeffect Comments: Indicates what functions can be performed when the dragged object is released on the drop target. The values are defined as: - copy:A duplicate of the source object will be dropped into the target. - move:The source object will be removed from its current location and dropped into the target. - link:A reference or shortcut to the dragged object will be created in the target object. - execute: A function supported by the drop target is executed, using the drag source as an input. - popup: There is a popup menu or dialog that allows the user to choose one of the drag operations (copy, move, link, execute) and any other drag functionality, such as cancel. - none: No operation can be performed; effectively cancels the drag operation if an attempt is made to drop on this object. Name: grabbed Values: true, false Default: false Reference: Comments: true when the accessible object has been selected for dragging. Name: sort Values: ascending, descending, none Default: none Reference: http://www.w3.org/TR/wai-aria/states_and_properties#aria-sort Comments: If the value is ascending or descending this indicates that an object's items are sorted and the sorting
Re: [Accessibility-ia2] Please review object attribute additions
Alex, I see I missed #3 and #4. See below... On 8/21/12 4:51 AM, Alexander Surkov wrote: Hi, Pete. Few notes. 1) explicit-name description looks a little bit complicated. The following short sentence explains well the idea of the attribute: A true value indicates that the accessible name is different from, and more meaningful than, the text that is returned from IAccessibleText::text. 2) sort. Comments: If the value is ascending or descending this indicates that an object's items are sorted and the sorting algorithm used. why is items are sorted not enough and it makes sense to mention the sorting algorithm? 3) atomic True when all the objects in the accessibility tree below this object should be presented as a whole maybe from subtree instead in the accessibility tree below this object? How's this: True when this object and its subtree should be presented as a whole, when changes within it are considered important enough to be presented automatically. 4) event-from-input. It's worth to notice that it works in-process only since it doesn't make much sense for out-of-process client (two different events may be targeted to the same object). Is this set on the object that the event was fired on? Assuming that, how about this: True if the root cause of the event fired on this object was explicit user input (as opposed to a programmatic change). This attribute is only useful for in-process Assistive Technology which can check the attribute on the event handling thread. Thank you. Alex. On Thu, Aug 16, 2012 at 2:04 PM, Pete Brunet p...@a11ysoft.com wrote: Here is a list of some new IA2 object attributes. Thanks for a pre-review by Alex and Jamie. Please review these additions. The current set is listed at: https://www.linuxfoundation.org/collaborate/workgroups/Accessibility/IAccessible2/ObjectAttributes In new section, Common Attributes Name: explicit-name Values: true, false Default: false Reference: Comments: (see the following) Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name in preference to the object's primary text. A true value indicates that the accessible name is different from, and more meaningful than, the text that is returned from IAccessibleText::text. Typically an object's accessible name is taken directly from the object's textual content and is equivalent to the text from IAccessibleText::text, but a true value is returned when the server has chosen to use ancillary text rather than the accessible's primary textual content when generating the accessible name. Some examples that could be seen in an IAccessible2 implementation of a web browser are: 1) a href=http://www.adomain.com;content/a In this case the accessible name will be content and explicit-name will be false. 2) a href=http://www.adomain.com; title=a titlecontent/a If the title text is used for the accessible name, explicit-name will be true. 3) a href=http://www.adomain.com; aria-label=a labelcontent/a If the aria-label text is used for accessible name, explicit-name will be true. 4) div id=labela label/divdiv role=radio aria-labelledby=labelcontent/div If the label text is used for the accessible name, explicit-name will be true. If this value is true assistive technology may choose to present the user with the accessible name rather than the text from IAccessibleText::text. and these from the Gecko spec at https://developer.mozilla.org/en-US/docs/Accessibility/AT-APIs/Gecko/Attrs Name: draggable Values: true, false Default: false Reference: Comments: true when the accessible object can be grabbed. Name: dropeffect Values: copy, move, link, execute, popup, none Default: none Reference: http://www.w3.org/TR/wai-aria/states_and_properties#aria-dropeffect Comments: Indicates what functions can be performed when the dragged object is released on the drop target. The values are defined as: - copy:A duplicate of the source object will be dropped into the target. - move:The source object will be removed from its current location and dropped into the target. - link:A reference or shortcut to the dragged object will be created in the target object. - execute: A function supported by the drop target is executed, using the drag source as an input. - popup: There is a popup menu or dialog that allows the user to choose one of the drag operations (copy, move, link, execute) and any other drag functionality, such as cancel. - none: No operation can be performed; effectively cancels the drag operation if an attempt is made to drop on this object. Name: grabbed Values: true, false Default: false Reference: Comments: true when the accessible object has been selected for dragging. Name: sort Values: ascending, descending, none Default: none Reference: http://www.w3
Re: [Accessibility-ia2] The display object attribute
I spec'd inline, block, inline-block with inline as default. Is that OK? On 8/14/12 11:45 PM, Alexander Surkov wrote: Firefox exposes exactly what CSS display is. If the value is not inline/block/inline-blcok then should it be mapped to one of these values or the attribute should missed? Alex. On Tue, Aug 14, 2012 at 11:23 AM, James Teh ja...@nvaccess.org wrote: I'd argue the only really relevant values that aren't domain specific are inline, block and possibly inline-block. These enable an AT to determine whether a node is on a separate line from others. None isn't necessary in any case, as this should be communicated either via the invisible state or non-existence in the tree. Jamie On 14/08/2012 12:14 PM, Pete Brunet wrote: It has been requested that the Gecko display object attribute be added to the IA2 Object Attribute spec. That spec references http://www.w3.org/TR/CSS2/visuren.html#display-prop Should all of the values listed be supported? Remember that we don't want to over specify in order to not overburden app developers. The list is: inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] Please review object attribute additions
/states_and_properties#aria-relevant Comments: Describes what kinds of changes are informational, as opposed to presentational. The four possible values are defined as: - text: Notify if there was a change in the text of any of the accessible objects making up the live region. - additions: Notify if any accessible objects were added to the live region. - removals: Notify if any accessible objects were removed from the live region. - all: Equivalent to the combination of the above three values. Name: container-atomic Values: true, false Default: false Reference: https://developer.mozilla.org/en-US/docs/AJAX/WAI_ARIA_Live_Regions_API_Support Comments: This object is a descendant in the accessibility tree of an object which has the atomic object attribute. If true, the IA2_RELATION_MEMBER_OF relation will point to the root of the atomic region. Name: container-busy Values: true, false Default: false Reference: https://developer.mozilla.org/en-US/docs/AJAX/WAI_ARIA_Live_Regions_API_Support Comments: The current changes in the live region are not yet complete. A state change event will be fired on the root object of the live region once it no longer has state for STATE_SYSTEM_BUSY. The entire atomic region should be presented once when it is finally no longer busy. Name: container-live Values: off, polite, assertive Default: off Reference: https://developer.mozilla.org/en-US/docs/AJAX/WAI_ARIA_Live_Regions_API_Support Comments: This object is a descendant in the accessibility tree of an object which has the live object attribute. The value of this attribute will match that of the root of the current live region. Name: container-relevant Values: all, or a space delimited list of one or more of these values: additions, removals, text Default: additions text Reference: https://developer.mozilla.org/en-US/docs/AJAX/WAI_ARIA_Live_Regions_API_Support Comments: This object is a descendant in the accessibility tree of an object which has the relevant object attribute. The value of this attribute will match that of the root of the current live region. Name: event-from-input Values: true, false Default: Reference: https://developer.mozilla.org/en-US/docs/AJAX/WAI_ARIA_Live_Regions_API_Support Comments: True if the root cause of this event was explicit user input (as opposed to a programmatic change). In a new section labeled Value Attributes Name: valuetext Values: string Default: Reference: Comments: A text equivalent to the current value, such as High in a slider. I'll also add a link to the Gecko spec for an example of object attributes which has been specified for a HTML specific environment. -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Getting the document accessible
If there's not a clear need for it I'd prefer to not add childrenByAttribute. Is that acceptable? On 8/15/12 8:02 PM, Alexander Surkov wrote: For role and states we could use fake attributes as you say like role:3;states:34944 where numbers are predefined constants or a bitset in case of states. Agree, it looks different from rest of the API. However it seems we are hunting for flexibility in API and thus maybe it's ok. Relations should fit imo. Thank you. Alex. On Thu, Aug 16, 2012 at 9:44 AM, James Teh ja...@nvaccess.org wrote: As much as I'd love a way to search descendants quickly (in theory), one major problem with searching by attributes is that there are a lot of properties which aren't attributes; e.g. role and states. I don't really have a good alternative, but even if we make fake attributes for the purposes of searching (i.e. they aren't actually exposed as object attributes), this seems a bit contrary to the rest of the API. Also, is there a reason a relation doesn't fit for getting the document accessible? Jamie On 15/08/2012 4:02 PM, Alexander Surkov wrote: Hi, Pete. containerByAttrbute is OK with me, taking a BSTR like document:anchored; someOtherAttribute:someOtherValue; Do all of the attribute/value pairs have to be true? I missed the question. Regarding childrenByAttribute, although there hasn't been a request for this, should we add it? It should be good for reserve even if nobody raised a hand for it yet. AT should have a fast way to find children complying the certain criteria. Alex, Please explain the second, third, and fourth parameters: - [in] nsIAccessible* anchor Is this where to start the search? Why not just start the search from the current accessible? say if you look for children in the document from certain point, for example, you fetch all headings starting from heading #5 (because your virtual cursor is on it). If NULL then accessible itself. - [in] bool lookIntoSubtree Is this is false does that mean to only look into one level below the starting point? I think yes but I started to think it would be more flexible to keep it as integer so that we can introduce more constant when we need. Of course any criteria can be specified in the list attribute:value like lookIntoSubtree;. Jamie, ideas? - [in] long desiredChildrenAmount, What is the purpose of limiting the array? (There was a miscoding in the original IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, IAccessibleAction::keyBinding that included a maxMembers parameter, but this has been fixed for IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns, and IAccessibleTable2::selectedRows.) Idea of max count argument is performance win when AT doesn't need all items, it's similar to relations and hyperlinks we discussed recently. Indeed if you need next item then you shouldn't calculate all items. Thank you. Alex. On Tue, Aug 14, 2012 at 5:45 AM, Pete Brunet p...@a11ysoft.com wrote: I see we have a few things to finalize yet, one of which is this thread. containerByAttrbute is OK with me, taking a BSTR like document:anchored; someOtherAttribute:someOtherValue; Do all of the attribute/value pairs have to be true? Regarding childrenByAttribute, although there hasn't been a request for this, should we add it? Alex, Please explain the second, third, and fourth parameters: - [in] nsIAccessible* anchor Is this where to start the search? Why not just start the search from the current accessible? - [in] bool lookIntoSubtree Is this is false does that mean to only look into one level below the starting point? - [in] long desiredChildrenAmount, What is the purpose of limiting the array? (There was a miscoding in the original IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, IAccessibleAction::keyBinding that included a maxMembers parameter, but this has been fixed for IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns, and IAccessibleTable2::selectedRows.) I'd like to finalize all these discussions ASAP so we can finish off the 1.3 update so please comment. Pete On 3/4/12 9:44 PM, Alexander Surkov wrote: I find interesting the 5th option: containerOfAttributeValuePairs. It looks flexible. Its syntax covers 2-4 options. Not sure I like the name since it's pretty long (maybe containerByAttribute or selector? similar to DOM API). If we discuss the traversal API then we should consider an opposite method to get a children like childrenOfAttributeValuePairs (childrenByAttribute) that takes a point in accessible tree where we should start a search and returns an array of children like HRESULT childrenByAttribute( [in] BSTR attributes, [in] nsIAccessible* anchor, [in] bool lookIntoSubtree, [in] long desiredChildrenAmount, [out, array] nsIAccessible** children, [out] long* childrenCount); Thank you
Re: [Accessibility-ia2] Getting the document accessible
I see we have a few things to finalize yet, one of which is this thread. containerByAttrbute is OK with me, taking a BSTR like document:anchored; someOtherAttribute:someOtherValue; Do all of the attribute/value pairs have to be true? Regarding childrenByAttribute, although there hasn't been a request for this, should we add it? Alex, Please explain the second, third, and fourth parameters: - [in] nsIAccessible* anchor Is this where to start the search? Why not just start the search from the current accessible? - [in] bool lookIntoSubtree Is this is false does that mean to only look into one level below the starting point? - [in] long desiredChildrenAmount, What is the purpose of limiting the array? (There was a miscoding in the original IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, IAccessibleAction::keyBinding that included a maxMembers parameter, but this has been fixed for IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns, and IAccessibleTable2::selectedRows.) I'd like to finalize all these discussions ASAP so we can finish off the 1.3 update so please comment. Pete On 3/4/12 9:44 PM, Alexander Surkov wrote: I find interesting the 5th option: containerOfAttributeValuePairs. It looks flexible. Its syntax covers 2-4 options. Not sure I like the name since it's pretty long (maybe containerByAttribute or selector? similar to DOM API). If we discuss the traversal API then we should consider an opposite method to get a children like childrenOfAttributeValuePairs (childrenByAttribute) that takes a point in accessible tree where we should start a search and returns an array of children like HRESULT childrenByAttribute( [in] BSTR attributes, [in] nsIAccessible* anchor, [in] bool lookIntoSubtree, [in] long desiredChildrenAmount, [out, array] nsIAccessible** children, [out] long* childrenCount); Thank you. Alex. On Sat, Mar 3, 2012 at 2:13 AM, Pete Brunet p...@a11ysoft.com wrote: Some other thoughts: 1) containerOfRoles, passing in an array of roles, returning the first one found when looking up 2) containerOfAttribute, passing in a BSTR identifying the attribute and then looking up the tree until an accessible with that object attribute is found, e.g. document. 3) containerOfAttributeValuePair, passing in the BSTR document:anchored 4) containerOfAttributes, passing in a BSTR with more than one attribute, e.g. document; someOtherAttribute; 5) containerOfAttributeValuePairs, passing in a BSTR with more than one pair, e.g. document:anchored; someOtherAttribute:someOtherValue; Are any of those useful? Are there other ideas? Pete On 3/1/12 11:16 PM, Alexander Surkov wrote: It's not very flexible. For example, you need to call several times if you want to get an accessible having a role from desired set of roles. Actually it introduces the basics of traversal API which must be handy for ATs but these basics don't look enough. Also I worry if document is mapped well always into role concept. For example, anchor target is applicable to any DOM document but role of DOM document accessible can be overridden by ARIA. If someone crazy enough creates a widget (like listbox) based on document and makes scrolling by passing '#' into URL then AT still might want to read that widget starting from anchorTarget. Thank you. Alex. On Fri, Mar 2, 2012 at 6:49 AM, Pete Brunet p...@a11ysoft.com wrote: Maybe we need IA2::containerOfRole? HRESULT IAccessible2::containerOfRole([in]long role, [out, retval] IUnknown **container) Pete On 2/23/12 8:40 PM, Alexander Surkov wrote: I'd say we should consider interfaces performant by design. If AT needs to get a containing document for accessible occasionally then it makes sense to do: o(1) is always preferable over o(n). I don't have good data when AT needs that but I should say that last year we were asked by one AT vendor to provide a mechanism to find a tab document having an accessible. We hacked IServiceProvider::QueryService for that. Maybe it'll be nice if IA2 had built-in methods to do that. If you say yes to this idea in general then we need to consider relation mechanism for this since I guess AT might need different types of documents like 1) containing document 2) tab document 3) window document 4) application Relation mechanism allows us to avoid a method per document type (sure we could have keep one method and pass document type as argument). Ale.x On Fri, Feb 24, 2012 at 12:57 AM, Pete Brunet p...@a11ysoft.com wrote: The apparent reason for this new method is for performance, i.e. the AT can already walk up the tree looking for a role of interest. Has there been a situation where walking up the tree is causing a performance problem? In my experience, AT (at least some AT) are constantly walking up and down the tree, and I haven't noticed a performance issue. Also, as Jamie implies, you'd only have to walk
Re: [Accessibility-ia2] Wrong documentation of IAccessibleText::textAtOffset
Thanks for catching that Jan Arve. On 8/8/12 8:36 AM, jan-arve.saet...@nokia.com wrote: Hi. Unless I have completely misunderstood the textAtOffset() function, I believe that the documentation for textAtOffset have some lies for the documentation of the offset parameter. I believe this to be a copy and paste bug from textBeforeOffset(). From IAccessibleText.idl(470-472), version 1.2.1: @param [in] offset Index of the character for which to return the text part before it. The index character will not be part of the returned string. The valid range is 0..length. It should probably be somewhere in the lines of: @param [in] offset Index of the character for which to return the text part it belongs to. The valid range is 0..length. cheers, Jan Arve Sæther ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IEnumVARIANT vs arrays
Thanks Alex, I still prefer 1 rather than 1.1 and 2, but let's see what others say. -Pete On 3/6/12 12:26 AM, Alexander Surkov wrote: 2nd is more flexible than 1, 1.1 is a nice shortcut for 2 in case of one target so probably I would go with 1.1 and 2. Alex. On Tue, Mar 6, 2012 at 2:35 PM, Pete Brunet p...@a11ysoft.com wrote: Thanks Alex (and Jamie), I offer two choices, and in both cases using IDL like our recently added IATable2::selectedRows/Columns/Cells. I like the first choice better because it offers a very simple method for the case that will be used 99% of the time. The second choice is the one Jamie proposed. 1) // Fetch one target, even if there is more than one. HRESULT IAccessible2_2::relationTargetOfType ( [in] BSTR type, [out, retvalue] IUnknown **target ) and // Fetch all targets HRESULT IAccessible2_2::relationTargetsOfType ( [in] BSTR type, [out, size_is(,*nTargets)] IUnknown ***targets, [out, retval] long *nTargets ) 2) // Fetch either one or all targets depending on the maxTargets parameter. // Typically maxTargets will be 1 but if maxTargets is 0 the server will return all available targets, using nTargets to indicate how many were returned. HRESULT IAccessible2_2::relationTargetsOfType ( [in] BSTR type, [in] long maxTargets, [out, size_is(,*nTargets)] IUnknown ***targets, [out, retval] long *nTargets ) That maxTargets parameter could be a boolean but as a long it provides the option of asking for the first n targets. In both cases the server would allocate the array, using CoTaskMemAlloc. The client would use CoTaskMemFree to free the array. Pete On 3/5/12 10:25 PM, Alexander Surkov wrote: Basically that's what Jamie said. We need to make sure the server doesn't do extra work when nobody needs it. So I'm fine with Jamie proposal to pass the desired targets amount. Alex. On Tue, Mar 6, 2012 at 1:19 PM, Alexander Surkov surkov.alexan...@gmail.com wrote: ARIA tends to expose multiple targets especially stuffs like aria-labelledby. I don't have statistics though. But the point is if AT needs only one targets then the server shouldn't spend a time to check whether there are other targets. In other words we can end up with single target but the server can do a lot of computation to figure out this. Thank you. Alex. On Tue, Mar 6, 2012 at 6:31 AM, James Teh ja...@nvaccess.org wrote: On 6/03/2012 7:20 AM, Pete Brunet wrote: Jamie, Since the server allocates the array, are there any issues for AT regarding the method I proposed? Not directly for ATs. However, fetching multiple targets might be expensive and slow on the server side; if I recall correctly, Alex has concurred with this. Obviously, if the server is slow, the client slows down too. The idea was to allow clients who only want one target to just fetch one target without incurring a performance penalty on the server side. Alex, how often are there actually multiple targets for a single relation in Mozilla itself? Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IEnumVARIANT vs arrays
Thanks Alex (and Jamie), I offer two choices, and in both cases using IDL like our recently added IATable2::selectedRows/Columns/Cells. I like the first choice better because it offers a very simple method for the case that will be used 99% of the time. The second choice is the one Jamie proposed. 1) // Fetch one target, even if there is more than one. HRESULT IAccessible2_2::relationTargetOfType ( [in] BSTR type, [out, retvalue] IUnknown **target ) and // Fetch all targets HRESULT IAccessible2_2::relationTargetsOfType ( [in] BSTR type, [out, size_is(,*nTargets)] IUnknown ***targets, [out, retval] long *nTargets ) 2) // Fetch either one or all targets depending on the maxTargets parameter. // Typically maxTargets will be 1 but if maxTargets is 0 the server will return all available targets, using nTargets to indicate how many were returned. HRESULT IAccessible2_2::relationTargetsOfType ( [in] BSTR type, [in] long maxTargets, [out, size_is(,*nTargets)] IUnknown ***targets, [out, retval] long *nTargets ) That maxTargets parameter could be a boolean but as a long it provides the option of asking for the first n targets. In both cases the server would allocate the array, using CoTaskMemAlloc. The client would use CoTaskMemFree to free the array. Pete On 3/5/12 10:25 PM, Alexander Surkov wrote: Basically that's what Jamie said. We need to make sure the server doesn't do extra work when nobody needs it. So I'm fine with Jamie proposal to pass the desired targets amount. Alex. On Tue, Mar 6, 2012 at 1:19 PM, Alexander Surkov surkov.alexan...@gmail.com wrote: ARIA tends to expose multiple targets especially stuffs like aria-labelledby. I don't have statistics though. But the point is if AT needs only one targets then the server shouldn't spend a time to check whether there are other targets. In other words we can end up with single target but the server can do a lot of computation to figure out this. Thank you. Alex. On Tue, Mar 6, 2012 at 6:31 AM, James Teh ja...@nvaccess.org wrote: On 6/03/2012 7:20 AM, Pete Brunet wrote: Jamie, Since the server allocates the array, are there any issues for AT regarding the method I proposed? Not directly for ATs. However, fetching multiple targets might be expensive and slow on the server side; if I recall correctly, Alex has concurred with this. Obviously, if the server is slow, the client slows down too. The idea was to allow clients who only want one target to just fetch one target without incurring a performance penalty on the server side. Alex, how often are there actually multiple targets for a single relation in Mozilla itself? Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] IEnumVARIANT vs arrays
IATable2::selectedCells/Columns/Rows returns an array but the proposed new methods: https://wiki.mozilla.org/Accessibility/IA2_1.3#Relations https://wiki.mozilla.org/Accessibility/IA2_1.3#Hyperlinks_from_hypertext specify the return of an IEnumVARIANT. What is the reasoning for that? With the IEnumVARIANT you have to fetch the count (so you can allocate an array), the enumerator, and then the elements, taking at least three calls (or more if you want to fetch the elements one at a time). With the alternative approach we had used for IATable2 there is only one call. -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Getting the document accessible
Some other thoughts: 1) containerOfRoles, passing in an array of roles, returning the first one found when looking up 2) containerOfAttribute, passing in a BSTR identifying the attribute and then looking up the tree until an accessible with that object attribute is found, e.g. document. 3) containerOfAttributeValuePair, passing in the BSTR document:anchored 4) containerOfAttributes, passing in a BSTR with more than one attribute, e.g. document; someOtherAttribute; 5) containerOfAttributeValuePairs, passing in a BSTR with more than one pair, e.g. document:anchored; someOtherAttribute:someOtherValue; Are any of those useful? Are there other ideas? Pete On 3/1/12 11:16 PM, Alexander Surkov wrote: It's not very flexible. For example, you need to call several times if you want to get an accessible having a role from desired set of roles. Actually it introduces the basics of traversal API which must be handy for ATs but these basics don't look enough. Also I worry if document is mapped well always into role concept. For example, anchor target is applicable to any DOM document but role of DOM document accessible can be overridden by ARIA. If someone crazy enough creates a widget (like listbox) based on document and makes scrolling by passing '#' into URL then AT still might want to read that widget starting from anchorTarget. Thank you. Alex. On Fri, Mar 2, 2012 at 6:49 AM, Pete Brunet p...@a11ysoft.com wrote: Maybe we need IA2::containerOfRole? HRESULT IAccessible2::containerOfRole([in]long role, [out, retval] IUnknown **container) Pete On 2/23/12 8:40 PM, Alexander Surkov wrote: I'd say we should consider interfaces performant by design. If AT needs to get a containing document for accessible occasionally then it makes sense to do: o(1) is always preferable over o(n). I don't have good data when AT needs that but I should say that last year we were asked by one AT vendor to provide a mechanism to find a tab document having an accessible. We hacked IServiceProvider::QueryService for that. Maybe it'll be nice if IA2 had built-in methods to do that. If you say yes to this idea in general then we need to consider relation mechanism for this since I guess AT might need different types of documents like 1) containing document 2) tab document 3) window document 4) application Relation mechanism allows us to avoid a method per document type (sure we could have keep one method and pass document type as argument). Ale.x On Fri, Feb 24, 2012 at 12:57 AM, Pete Brunet p...@a11ysoft.com wrote: The apparent reason for this new method is for performance, i.e. the AT can already walk up the tree looking for a role of interest. Has there been a situation where walking up the tree is causing a performance problem? In my experience, AT (at least some AT) are constantly walking up and down the tree, and I haven't noticed a performance issue. Also, as Jamie implies, you'd only have to walk the tree once to find the parent of interest and then save a reference to it. I just want to make sure we are solving a real problem before inflating IA2. -Pete On 2/22/12 4:27 PM, James Teh wrote: On 22/02/2012 6:54 PM, Alexander Surkov wrote: The proposed document accessible concept is close to DOM document. ... One example was get_accChild that can return child accessible by uniqueID. True, though the only time you ever need that is to test whether a given node is within a document. If you are trying to do that, you probably already have a reference to the document accessible. All caret/selection methods are fast on document accessible and slow on child accessible. But in that case, we're probably dealing with an editable document, which is a real ROLE_SYSTEM_DOCUMENT object. Trying to query for caret or selection on an application or frame just doesn't make sense. Theoretically anchorTarget is applicable to any document type, requirement is the URL should contain '#' pointing to element. Technically, that's true, but I don't see any use case for this in the wild. Why would an AT want to query for anchor target on an application? The problem is that all of this is abusing the idea of a document property. In Gecko, an application might be the same internally as a document, but that's not true from a user (and probably AT) perspective. One option is to note that the document property just returns the nearest document. If necessary, add a note stating that this will usually be a ROLE_SYSTEM_DOCUMENT accessible, but that the definition of document depends on the application. This makes a little trickier for clients to know what they'll get, but it does allow for a bit of flexibility. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- Pete Brunet a11ysoft - Accessibility Architecture
Re: [Accessibility-ia2] getting relations
How about a new method IA2::nRelationsOfType? So I think you'd do something like the following: - IEnumVARIANT* pEV = NULL - long n = IA2::nRelationsOfType(IA2_RELATION_EMBEDS) - long nFeteched = 0 - allocate an array of n VARIANTs - IA2::relationsOfType(IA2_RELATION_EMBEDS, pEV) - pEV-Next(n, theArray, nFetched) Note that the realtionsOfType [out] parameter is IEnumVARIANT**; the prototype at https://wiki.mozilla.org/Accessibility/IA2_1.3#Relations is missing a *. Pete On 3/2/12 1:58 AM, Alexander Surkov wrote: If I understand correctly, that would require a separate call to fetch each relation, which might not be desirable in some cases and also defeats the point of IEnumVARIANT. (If we're going to do that, we may as well have the function take an additional parameter specifying the index of the relation to fetch and return NULL when there are no more.) Nah you pass the desired amount of relations into IA2_EnumVariant::Next(). If you want one relation then you pass 1, if you want all then you pass int32_max or - 1 if you want. This could look like interface IA2EnumVariant : public IUknown { HRESULT Next( [in] long nItemLimit, [out, size_is(nItems*)] IUnknown*** items, [out, long] long* nItems) } Alex. On Fri, Mar 2, 2012 at 4:20 PM, James Teh ja...@nvaccess.org wrote: On 2/03/2012 3:42 PM, Alexander Surkov wrote: If we add relations count as out argument then we get rid the idea of lazy relations calculation. Iirc that was a primary reason of IEnumVariant usage but I missed the point that IEnumVariant requires the AT client to allocate the memory. So I think we should introduce interface similar to IEnumVariant where the server allocates the memory. That'll be similar to IAccessibleTable2 approach. If I understand correctly, that would require a separate call to fetch each relation, which might not be desirable in some cases and also defeats the point of IEnumVARIANT. (If we're going to do that, we may as well have the function take an additional parameter specifying the index of the relation to fetch and return NULL when there are no more.) What about a boolean specifying whether the count is desired? Alternatively, the count could be an in, out parameter which doesn't return the count if it's NULL, though I'm not sure if that is particularly elegant. Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Please review these three proposals
We already have IAHypertext::nHyperlinks so the AT already knows how many to ask for on the call to Next on the IEnumVARIANT returned from calling IAHyperText2::hyperlinks. On 3/2/12 12:15 AM, Alexander Surkov wrote: And again we need something similar to IEnumVariant but not IEnumVariant to do lazy computations :) Alex. On Fri, Mar 2, 2012 at 5:24 AM, Pete Brunet p...@a11ysoft.com wrote: On 2/28/12 8:00 PM, James Teh wrote: On 24/02/2012 12:48 PM, Pete Brunet wrote: https://wiki.mozilla.org/Accessibility/IA2_1.3#Hyperlinks_from_hypertext Again, there probably needs to be an out parameter for the count so that a client wanting all hyperlinks knows what to pass to IEnumVariant::Next. Thanks Jamie, I'll add that. Jamie -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Getting the document accessible
Maybe we need IA2::containerOfRole? HRESULT IAccessible2::containerOfRole([in]long role, [out, retval] IUnknown **container) Pete On 2/23/12 8:40 PM, Alexander Surkov wrote: I'd say we should consider interfaces performant by design. If AT needs to get a containing document for accessible occasionally then it makes sense to do: o(1) is always preferable over o(n). I don't have good data when AT needs that but I should say that last year we were asked by one AT vendor to provide a mechanism to find a tab document having an accessible. We hacked IServiceProvider::QueryService for that. Maybe it'll be nice if IA2 had built-in methods to do that. If you say yes to this idea in general then we need to consider relation mechanism for this since I guess AT might need different types of documents like 1) containing document 2) tab document 3) window document 4) application Relation mechanism allows us to avoid a method per document type (sure we could have keep one method and pass document type as argument). Ale.x On Fri, Feb 24, 2012 at 12:57 AM, Pete Brunet p...@a11ysoft.com wrote: The apparent reason for this new method is for performance, i.e. the AT can already walk up the tree looking for a role of interest. Has there been a situation where walking up the tree is causing a performance problem? In my experience, AT (at least some AT) are constantly walking up and down the tree, and I haven't noticed a performance issue. Also, as Jamie implies, you'd only have to walk the tree once to find the parent of interest and then save a reference to it. I just want to make sure we are solving a real problem before inflating IA2. -Pete On 2/22/12 4:27 PM, James Teh wrote: On 22/02/2012 6:54 PM, Alexander Surkov wrote: The proposed document accessible concept is close to DOM document. ... One example was get_accChild that can return child accessible by uniqueID. True, though the only time you ever need that is to test whether a given node is within a document. If you are trying to do that, you probably already have a reference to the document accessible. All caret/selection methods are fast on document accessible and slow on child accessible. But in that case, we're probably dealing with an editable document, which is a real ROLE_SYSTEM_DOCUMENT object. Trying to query for caret or selection on an application or frame just doesn't make sense. Theoretically anchorTarget is applicable to any document type, requirement is the URL should contain '#' pointing to element. Technically, that's true, but I don't see any use case for this in the wild. Why would an AT want to query for anchor target on an application? The problem is that all of this is abusing the idea of a document property. In Gecko, an application might be the same internally as a document, but that's not true from a user (and probably AT) perspective. One option is to note that the document property just returns the nearest document. If necessary, add a note stating that this will usually be a ROLE_SYSTEM_DOCUMENT accessible, but that the definition of document depends on the application. This makes a little trickier for clients to know what they'll get, but it does allow for a bit of flexibility. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Finding the most recent target of the most recent activation of an in page link
After all our discussion I believe we've reached the point where we can say the proposal at https://wiki.mozilla.org/Accessibility/IA2_1.3#Anchor_target is accepted. However, I don't see a need for IAccessibleDocument to derive from a super-interface, so I propose that this be changed. Pete On 2/21/12 8:46 PM, Alexander Surkov wrote: Hi, Pete. I liked IAccessibleDocument interface because anchorTarget is applicable to document accessible and doesn't make huge sense on IAccessible2. From implementation point of view we would need to get anchorTarget on document accessible and then check if obtained anchor target is within an accessible you call this method on. Thank you. Alex. On Wed, Feb 22, 2012 at 6:57 AM, Pete Brunet p...@a11ysoft.com wrote: Thanks Jamie, It appears there is not strong preference by anyone for any of the various options. Your observation about state vs relationship is interesting and is enough to motivate me to choose a method over a relation. Does anyone have any preference regarding whether the anchorTarget method should reside in IAccessible2_2 or IAccessibleDocument. The latter would be a new interface with one method. Pete On 2/12/12 8:45 PM, James Teh wrote: On 10/02/2012 4:13 AM, Pete Brunet wrote: so maybe it's OK to have a new interface and method, but I'd like to get some feed back from others on if a method or relation is preferred. It makes sense to use existing mechanisms as much as possible rather than introducing new methods, so long as those mechanisms fit the proposal and don't incur performance or other problems. I feel a relation fits well enough here, but I don't feel strongly enough about it to fight for it if others disagree. :) I'd pose the question: what makes this so special as to justify a new method? Why is it more special than, say, flowsTo or labelledBy? I guess it doesn't fit relations entirely, as it isn't strictly related so much as state information. If that argument is consensus, fair enough. Jamie -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] New relations
Regarding this proposal https://wiki.mozilla.org/Accessibility/IA2_1.3#New_relation_types See this related background post: https://lists.linuxfoundation.org/pipermail/accessibility-ia2/2010-February/001021.html where I ask if we should add the second and third relations IA2_RELATION_GROUPING_OBJECT_FOR IA2_RELATION_POPUP_INITIATOR_FOR Please let me know what you think about adding those two. I don't want to add something that isn't useful, won't be used, and will add unnecessary work for implementers. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] getting relations
In prior discussions we have agreed that we can deprecate IA2::nRelations and IA2::relation (singular). We have also agreed we need to be able to fetch relations by type, i.e. this proposal: https://wiki.mozilla.org/Accessibility/IA2_1.3#Relations though I'd like to name it IAccessible2_2::relationsOfType We had agreed that we still need IA2::relations (plural) http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible2.html#967f0dffba760744b5963f42bb7be8ed but I just want to verify that, i.e. is it still useful to get all the relations when it is possible to get only the relations of interest on a type by type basis? If IA2::relations is deprecated then IARelation could also be deprecated. http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible_relation.html Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] Getting the document accessible
https://wiki.mozilla.org/Accessibility/IA2_1.3#Document_accessible proposes that IAccessible2_2::document will return the containing object that implements IAccessibleDocument. Since it's possible that we will decide to not add IAccessibleDocument I'd prefer to specify that the object returned will be the containing object of MSAA role ROLE_SYSTEM_DOCUMENT. Are there any concerns with this redefinition? Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Getting the document accessible
Hi Alexander, In the case of IA2 I'm not aware of an interface being used as a marker like you are proposing. Maybe the method name should be something other than document. Some use cases would be helpful. I am doubting that the AT would be asking for the containing object which can provide the most recent target (the only method available from your proposed IADocument interface). Does that query make sense for application, frame, and dialog? Also, I don't understand the get_accChild / uniqueID argument. Pete On 2/21/12 9:31 PM, Alexander Surkov wrote: Right, but other things like get_accChild taking uniqueId are still applied. On Wed, Feb 22, 2012 at 12:05 PM, James Teh ja...@nvaccess.org wrote: On 22/02/2012 12:34 PM, Alexander Surkov wrote: In Firefox a document accessible can have following roles: # ROLE_SYSTEM_APPLICATION # IA2_ROLE_FRAME # ROLE_SYSTEM_DOCUMENT # ROLE_SYSTEM_DIALOG I'd argue all of the roles other than ROLE_SYSTEM_DOCUMENT are not documents in the user sense of the word and therefore document operations (such as fetching the most recent target) don't apply to them. However, perhaps I'm being too literal. I don't really mind either way. Jamie -- James Teh Director, NV Access Limited Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ Phone: +61 7 5667 8372 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] Fwd: Re: IAccessibleEditableText2 - clipboard operations
Reposting with correct list address... Original Message Subject: Re: [Accessibility-ia2] IAccessibleEditableText2 - clipboard operations Date: Wed, 08 Feb 2012 12:03:04 -0600 From: Pete Brunet p...@a11ysoft.com Reply-To: p...@a11ysoft.com CC: IA2 List accessibility-...@lists.linux-foundation.org Since there has been no responses since last July it appears the following proposal is acceptable. - Deprecate IAEditableText::cut/copy/pasteText, adding a note that this function is available via the application's GUI. - Don't provide additional action constants for cut/copy/paste. These can easily be added in the future if needed. Please let me know what you think. Thanks, Pete On 7/23/11 8:42 AM, Pete Brunet wrote: Another p.s. The reason the group ended up suggesting actions is that users would use the GUI for clipboard operations so the actions would be available to provide support for some future AT that might not be able to use the GUI. That brings up the question of will there ever be a case where there is no keyboard accessible GUI for cut/copy/paste? If there will always be a keyboard accessible GUI will there ever be an AT that can't access that GUI? I assume even GOK users can manipulate a context menu. I think the action interface was for something like an image map with several unique actionable areas that are only accessible via a mouse click. I suspect we can just deprecate the cut/copy/paste methods of IAEditableText and not provide equivalent actions. This would save unneeded a11y implementations. Pete On 7/22/2011 4:00 PM, Pete Brunet wrote: p.s. What is the advantages of subclassing? On the client side it would save a QI to switch from IAClipboard and IAEditableText. On the server side I don't think it matters because both interfaces would be implemented on the same object. The other issue is that copy can be done from editable or non-editable text so for a non-editable object a server would implement IAText and only the copy method of IAClipboard and none of the methods in IAClipboard's superclass. Due to that, if subclassing is the desired approach, it would be better to derive from IAText instead. For completeness I'm assuming you'd only want to use IAEditableText on an editable object. Pete On 7/22/2011 1:39 PM, Pete Brunet wrote: To all: Please let me know your preference for actions vs another interface. Assuming I understand Peter the alternative is to deprecate the 3 existing clipboard methods in IAccessibleEditableText and then provide IAccessibleClipboard deriving from IAccessibleEditableText and providing 3 new methods: cut, copy, paste. All methods would use the selection, not offset parameters. paste would have a type enum parameter with values for default, formatted, and unformatted. Pete On 7/22/2011 1:00 PM, Peter Korn wrote: Pete, Thinking back about these discussions, I wonder if a better way to approach this is a new sub-interface: AccessibleClipboard. Then any object (container?) would implement this as appropriate for it. Peter On 7/22/2011 10:56 AM, Pete Brunet wrote: I believe these are the issues related to clipboard operations 1) Copy should have been in IAText instead since copy doesn't require that an object be editable 2) The current selection should be used instead of offset parameters. 3) Other formats besides text can be copied to and pasted from the clipboard. I think the following proposal is in line with the prior discussion regarding a solution. - Deprecate the 3 clipboard operations from IAEditableText. (They are currently not in use.) - Provide 5 new preset action constants for copy, cut, pasteDefault, pasteFormatted, and pasteUnformatted. - pasteDefault: The result would be the same
Re: [Accessibility-ia2] accessible relations to expose next/prev item in tab order
This request seems like a good one. Any objections? Any ideas for different names? On 11/9/11 3:55 AM, Alexander Surkov wrote: Hi. Resending the mail again since it appears it was rejected due to past IA2 mail list problems. Originally this feature was reported in Mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=396561. Recently I was asked about the same by screen reader vendor. The problem is the screen reader deals with virtual cursor (the user's focus in the virtual buffer) which can be somewhere in the document. So when the user presses a tab key, the virtual cursor should be moved to next tabbable element relative the point the virtual cursor is. If screen reader doesn't handle tab then focus moves to next tabbable element relative the current focus. Is it a worth idea to introduce new relation types for that, say IA2_RELATION_NEXTTABBABLE/PREVTABBABLE? Thank you. Alex. -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] accessibleWithCaret - caretOffset
I agree that it's OK to keep the offset parameter, primarily so that out of process AT won't suffer the penalty of process switches resulting from calls to QI and IAText::caretOffset. The proposal is at https://wiki.mozilla.org/Accessibility/IA2_1.3#Caret_offset_and_accessible_containing_the_caret One additional note is needed: If there is no object containing a caret the return value would be S_FALSE and the out parameters would be NULL for the pointer to the IUnknown and 0 for the long. Are there any additional issues? Pete On 9/7/11 10:02 AM, Alexander Surkov wrote: Ok, I buy it. That suggestion was a syntax sugar, it could be useful for those who is out of process and deprecate caretOffset (at least I don't see a case what caretOffset can be used for having accessibleWithCaret). Alex. On Wed, Sep 7, 2011 at 10:53 PM, Malte Timmermann malte_timmerm...@gmx.com wrote: Magic value sounds strange to me, especially that it would make the OUT param an INOUT param. IA2 is intended to be in process, so I don't think the extra call is a problem. The AT will make many other calls anyway, like getting text attributes, object pos/size and other stuff. Malte. On 07.09.2011 05:18, Alexander Surkov wrote: Hi, Pete. The reason is to save an extra call. From my understanding AT wants to know the caret offset within deepest accessible having a caret. This doesn't add complexity to server implementation (as you said all it's needed is to query text interface and call caretOffset). We could introduce magic value for caret offset argument to specify that the server shouldn't calculate it. Thank you. Alex. On Sat, Sep 3, 2011 at 5:39 AM, Pete Brunetp...@a11ysoft.com wrote: Alex, Why does accessibleWithCaret have an [out] caretOffset? The user can QI to IAText and use IAText::offset. I propose not adding that redundancy (and thus extra code for the app developers). -Pete -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] HTML table summary mapping to IA2
Are there any objections to the following? Deprecate IATable2::summary and caption, adding the following notes: summary: If the summary is a simple string return it via MSAA's get_accDescription. If the summary consists of a hierarchy of objects provide an IA2_RELATION_DESCRIBED_BY relation. caption: Provide an IA2_RELATION_LABELED_BY relation. Pete -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G On 8/30/2011 1:30 PM, Richard Schwerdtfeger wrote: Hi Alex, Summary is the equivalent of a text description that can be mapped to accDescription. The summary is not visible to sighted users. So, it behaves the same way as a hidden aria-descibedby. We should start being consistent in the way that we provide information. Captions are visible labels that have an object associated with them and a label relation should be used. We could apply a role of caption to the caption label if we had one. I see no need for additional methods in IAccessible2Table2. Rich Rich Schwerdtfeger CTO Accessibility Software Group Alexander Surkov ---08/30/2011 01:22:56 PM---When I started this thread I assumed that summary and caption are semantically different than name ( From: Alexander Surkov surkov.alexan...@gmail.com To: p...@a11ysoft.com Cc: IAccessible2 mailing list accessibility-...@lists.linux-foundation.org Date: 08/30/2011 01:22 PM Subject: Re: [Accessibility-ia2] HTML table summary mapping to IA2 Sent by: accessibility-ia2-boun...@lists.linuxfoundation.org When I started this thread I assumed that summary and caption are semantically different than name (label relation) and description (description relation) and AT wants to have an access to them. If this makes sense then we should go with VARIANT approach, otherwise summary and caption should be deprecated. Do we have any use cases from AT perspective? Thank you. Alex. On Tue, Aug 30, 2011 at 3:44 AM, Pete Brunet p...@a11ysoft.com wrote: I've been discussing this with Rich: rather than creating IATable3 and having summary return a VARIANT which could then return either a BSTR (for HTML) or an object (for other non-browser implementations), a solution with less impact would be to deprecate summary and add a comment that describedBy should be used when the description is provided by an object (or tree of objects) or accDescription otherwise. That seems acceptable for non-browser implementations as well. What do you think? Pete On 8/23/2011 8:50 AM, Pete Brunet wrote: For the 1.3 release, let me know if anyone is opposed to creating IATable3 with summary and caption changed to return a VARIANT instead of an IUnknown. On 8/22/2011 9:48 AM, Brett Lewis wrote: Hi, What prompted this thread for me is my trying to obtain caption and summary via the IAccessibleTable interface. By convention using name and description is fine but doesn't really seem to correctly implement IAccessibleTable and is only somewhat intuitive. I like the idea of having the get_summary and get_Caption return a variant with either the text or the IAccessible. Brett -Original Message- From: Alexander Surkov [mailto:surkov.alexan...@gmail.com] Sent: Monday, August 08, 2011 8:58 PM To: James Teh Cc: IAccessible2 mailing list; Brett Lewis Subject: Re: [Accessibility-ia2] HTML table summary mapping to IA2 Hi, Jamie. It appears AT want to get summary and caption (not a name or description since they can be different). Brett, do you have scenarios to share? Thank you. Alex. On Tue, Aug 9, 2011 at 12
[Accessibility-ia2] Finding the most recent target of the most recent activation of an in page link
The originating issue is here: https://bugzilla.mozilla.org/show_bug.cgi?id=617544 Alex's solution is here: https://wiki.mozilla.org/Accessibility/IA2_1.3#Anchor_target Due to the fact that this isn't a widespread issue I'd rather use a new relation than a new method to resolve the problem. I am proposing a new relation, hasFlowedTo. This is a generic name which could be suitable in many situations. A proposed text is: The object which has this relation is related to a group of additional objects, the sum of which make up a user's experience. The relation's target object is the object which has most recently been presented to the user. A concrete example is a section of a web page that has been navigated to via an in page link such as a href=#foo. Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G On 6/28/2011 10:51 AM, Pete Brunet wrote: Hi Alex, I did mean object attribute vs relation. At this point in the discussion either of the three (object attribute, relation, method) is OK with me. Since the requirement does not seem to be an overwhelming one (from the input we have so far) perhaps adding an object attribute or relation is the most pragmatic solution. Pete On 6/28/2011 5:05 AM, Alexander Surkov wrote: Hi, Pete. I don't recall who exactly came up with new interface suggestion, maybe it was me based on IA2 architecture in Gecko. Assuming you meant new relation rather than object attribute I believe relations approach work as generic approach. Any getter property that returns an object mapped well to relations mechanism, for example, IATable2::caption property can be exposed by relations. The question is when we want to introduce new method rather than reuse existing generic-propose method. Thank you. Alex. On Fri, Jun 24, 2011 at 12:41 PM, Pete Brunet p...@a11ysoft.com mailto:p...@a11ysoft.com wrote: Thanks Carolyn, Rich, When I read accessibleDocument I was thinking of the work done by Cathy Laws back around 2005. I finally found that document at http://accessibility.linuxfoundation.org/a11yspecs/atspi/adoc/ADOC_ATK.html Is this what you were thinking of? If so please start up a new thread to discuss that. By the way, ATK does have AtkDocument, documented at http://developer.gnome.org/atk/2.0/AtkDocument.html with these methods: atk_document_get_document_type atk_document_get_document atk_document_get_attribute_value atk_document_set_attribute_value atk_document_get_attributes atk_document_get_locale From what I remember we didn't see a need for the first 4 methods. We put the last two into the IAccessible2 interface so at this point IA2 doesn't have an IAccessibleDocument interface. Jamie, In the bug at https://bugzilla.mozilla.org/show_bug.cgi?id=617544 you proposed solving the problem with a new relation or a new accNavigate constant and in the new 1.3 document someone else, perhaps Alex, has proposed a new interface with one method, IAccessibleDocument::anchorTarget. (Perhaps that should have been currentAnchor?) Could the problem be solved with a new object attribute? Pete ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] IA2 in Eclipse
http://www-03.ibm.com/able/news/eclipse_introduces_iaccessible2.html -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] HTML table summary mapping to IA2
I've been discussing this with Rich: rather than creating IATable3 and having summary return a VARIANT which could then return either a BSTR (for HTML) or an object (for other non-browser implementations), a solution with less impact would be to deprecate summary and add a comment that describedBy should be used when the description is provided by an object (or tree of objects) or accDescription otherwise. That seems acceptable for non-browser implementations as well. What do you think? Pete On 8/23/2011 8:50 AM, Pete Brunet wrote: For the 1.3 release, let me know if anyone is opposed to creating IATable3 with summary and caption changed to return a VARIANT instead of an IUnknown. On 8/22/2011 9:48 AM, Brett Lewis wrote: Hi, What prompted this thread for me is my trying to obtain caption and summary via the IAccessibleTable interface. By convention using name and description is fine but doesn't really seem to correctly implement IAccessibleTable and is only somewhat intuitive. I like the idea of having the get_summary and get_Caption return a variant with either the text or the IAccessible. Brett -Original Message- From: Alexander Surkov [mailto:surkov.alexan...@gmail.com] Sent: Monday, August 08, 2011 8:58 PM To: James Teh Cc: IAccessible2 mailing list; Brett Lewis Subject: Re: [Accessibility-ia2] HTML table summary mapping to IA2 Hi, Jamie. It appears AT want to get summary and caption (not a name or description since they can be different). Brett, do you have scenarios to share? Thank you. Alex. On Tue, Aug 9, 2011 at 12:42 PM, James Teh ja...@nvaccess.org wrote: Hi Alex, Why are accName/accDescription insufficient? Thanks, Jamie On 9/08/2011 1:36 PM, Alexander Surkov wrote: Hi. IATable2 provides caption and summary properties that return accessible objects. HTML table summary is provided by @summary attribute so there's no accessible object that's created from DOM element. This can be workarounded by artificial accessible object creation that is attached or not attached to the tree but this complicates implementation and I would try to avoid it. Can we extend the IAccessibleTable2 by summaryText and captionText attributes or introduce summary and caption object attributes on table accessible if interface change is not desired for this? Thank you. Alexander. ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- James Teh Vice President, Developer NV Access Inc, ABN 61773362390 Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] HTML table summary mapping to IA2
For the 1.3 release, let me know if anyone is opposed to creating IATable3 with summary and caption changed to return a VARIANT instead of an IUnknown. On 8/22/2011 9:48 AM, Brett Lewis wrote: Hi, What prompted this thread for me is my trying to obtain caption and summary via the IAccessibleTable interface. By convention using name and description is fine but doesn't really seem to correctly implement IAccessibleTable and is only somewhat intuitive. I like the idea of having the get_summary and get_Caption return a variant with either the text or the IAccessible. Brett -Original Message- From: Alexander Surkov [mailto:surkov.alexan...@gmail.com] Sent: Monday, August 08, 2011 8:58 PM To: James Teh Cc: IAccessible2 mailing list; Brett Lewis Subject: Re: [Accessibility-ia2] HTML table summary mapping to IA2 Hi, Jamie. It appears AT want to get summary and caption (not a name or description since they can be different). Brett, do you have scenarios to share? Thank you. Alex. On Tue, Aug 9, 2011 at 12:42 PM, James Teh ja...@nvaccess.org wrote: Hi Alex, Why are accName/accDescription insufficient? Thanks, Jamie On 9/08/2011 1:36 PM, Alexander Surkov wrote: Hi. IATable2 provides caption and summary properties that return accessible objects. HTML table summary is provided by @summary attribute so there's no accessible object that's created from DOM element. This can be workarounded by artificial accessible object creation that is attached or not attached to the tree but this complicates implementation and I would try to avoid it. Can we extend the IAccessibleTable2 by summaryText and captionText attributes or introduce summary and caption object attributes on table accessible if interface change is not desired for this? Thank you. Alexander. ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- James Teh Vice President, Developer NV Access Inc, ABN 61773362390 Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] HTML table summary mapping to IA2
Hi Alex, Why are relations sufficient? A relation is a connection to another accessible but you said you don't want to fabricate another accessible. We probably should have had caption and summary return a variant so either an accessible or a BSTR could be returned. Would that have solved the problem? Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G On 8/9/2011 8:47 AM, Alexander Surkov wrote: Hi, Benjamin. I believe Jamie meant proposed summaryText and captionText when asked about accName/accDescription. More general question can be asked, i.e. why we need to have interface to expose caption and summary and it can be worded as why are labelled_by/for and described_by/for relations insufficient. Thank you. Alex. On Tue, Aug 9, 2011 at 3:23 PM, Benjamin Hawkes-Lewis bhawkesle...@googlemail.com wrote: On Tue, Aug 9, 2011 at 4:42 AM, James Teh ja...@nvaccess.org wrote: Why are accName/accDescription insufficient? The content model of HTML caption is flow (with no descendant table elements): http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-caption-element That means it a wide variety of structured markup, including headings, changes of language marked up with @lang, and links and form controls. A practical use of this complex content model might be to include controls for modifying the display of the table or linking to sources for the table's data. accName is a string, so any complex content is flattened into text: http://msdn.microsoft.com/en-us/library/accessibility.iaccessible.accname.aspx By contrast, the caption property returns an IAccessible or IAccessible2 object that could have children represents the structure of the caption. -- Benjamin Hawkes-Lewis ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Explicit name
Thanks Jamie, I made the following changes: - changed the method's name - updated the paragraphs - added information about the parameter and return values at the end HRESULT isNamePreferred([out, retval] boolean* isPreferred); Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name in preference to object's primary text. This method is only useful when the IAccessibleText interface is implemented and a true value indicates that the accessible name is different from, and more meaningful than, the text that is returned from IAccessibleText::text. Typically an object's accessible name is taken directly from the object's textual content and is equivalent to the text from IAccessibleText::text, but a true value is returned when the server has chosen to use ancillary text rather than the accessible's primary textual content when generating the accessible name. Some examples that could be seen in an IAccessible2 implementation of a web browser are: 1) a href=http://www.adomain.com;content/a In this case the accessible name will be content and isPreferred will be false. 2) a href=http://www.adomain.com; title=a titlecontent/a If the title text is used for the accessible name, isPreferred will be true. 3) a href=http://www.adomain.com; aria-label=a labelcontent/a If the aria-label text is used for accessible name, isPreferred will be true. 4) div id=labela label/divdiv role=radio aria-labelledby=labelcontent/div If the label text is used for the accessible name, isPreferred will be true. If this method returns true assistive technology may choose to present the user with the accessible name rather than the text from IAccessibleText::text. Parameters: isPreferred is true if the server prefers the use of the accessible name over the text from IAccessibleText::text. Return values: S_OK S_FALSE if IAccessibleText is not implemented On 7/26/2011 12:16 AM, James Teh wrote: On 26/07/2011 11:47 AM, Pete Brunet wrote: HRESULT isNameFromAncillaryText([out, retval] boolean* isFromAncillaryText); ... An object's accessible name is typically is taken directly from the typo: is typically is taken from - is typically taken from object's textual content and is equivalent to what is provided by IAccessibleText::text. I know you used the word typically above, but I'm wondering whether it's clear that this extends to the part about IAccessibleText as well. That is, it's still quite okay to have an accessible name even where IAccessibleText::text is not exposed at all. Perhaps this sentence neds to be amended slightly to make it clear that this is only relevant to servers which choose to expose content via IAccessibleText. Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Explicit name
Since this method is only useful when IAText is implemented I think this method belongs in IAText instead of IA2_2. In that case I'd remove the S_FALSE return value. Is that acceptable? On 7/26/2011 9:16 AM, Pete Brunet wrote: Thanks Jamie, I made the following changes: - changed the method's name - updated the paragraphs - added information about the parameter and return values at the end HRESULT isNamePreferred([out, retval] boolean* isPreferred); Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name in preference to object's primary text. This method is only useful when the IAccessibleText interface is implemented and a true value indicates that the accessible name is different from, and more meaningful than, the text that is returned from IAccessibleText::text. Typically an object's accessible name is taken directly from the object's textual content and is equivalent to the text from IAccessibleText::text, but a true value is returned when the server has chosen to use ancillary text rather than the accessible's primary textual content when generating the accessible name. Some examples that could be seen in an IAccessible2 implementation of a web browser are: 1) a href=http://www.adomain.com;content/a In this case the accessible name will be content and isPreferred will be false. 2) a href=http://www.adomain.com; title=a titlecontent/a If the title text is used for the accessible name, isPreferred will be true. 3) a href=http://www.adomain.com; aria-label=a labelcontent/a If the aria-label text is used for accessible name, isPreferred will be true. 4) div id=labela label/divdiv role=radio aria-labelledby=labelcontent/div If the label text is used for the accessible name, isPreferred will be true. If this method returns true assistive technology may choose to present the user with the accessible name rather than the text from IAccessibleText::text. Parameters: isPreferred is true if the server prefers the use of the accessible name over the text from IAccessibleText::text. Return values: S_OK S_FALSE if IAccessibleText is not implemented On 7/26/2011 12:16 AM, James Teh wrote: On 26/07/2011 11:47 AM, Pete Brunet wrote: HRESULT isNameFromAncillaryText([out, retval] boolean* isFromAncillaryText); ... An object's accessible name is typically is taken directly from the typo: is typically is taken from - is typically taken from object's textual content and is equivalent to what is provided by IAccessibleText::text. I know you used the word typically above, but I'm wondering whether it's clear that this extends to the part about IAccessibleText as well. That is, it's still quite okay to have an accessible name even where IAccessibleText::text is not exposed at all. Perhaps this sentence neds to be amended slightly to make it clear that this is only relevant to servers which choose to expose content via IAccessibleText. Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Explicit name
Hi Jamie, Picky is good - I appreciate it! Here is the new text assuming the method is in IAccessibleText: HRESULT isNamePreferred([out, retval] boolean* isPreferred); Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name in preference to the object's primary text. A true value indicates that the accessible name is different from, and more meaningful than, the text that is returned from IAccessibleText::text. Typically an object's accessible name is taken directly from the object's textual content and is equivalent to the text from IAccessibleText::text, but a true value is returned when the server has chosen to use ancillary text rather than the accessible's primary textual content when generating the accessible name. Some examples that could be seen in an IAccessible2 implementation of a web browser are: 1) a href=http://www.adomain.com;content/a In this case the accessible name will be content and isPreferred will be false. 2) a href=http://www.adomain.com; title=a titlecontent/a If the title text is used for the accessible name, isPreferred will be true. 3) a href=http://www.adomain.com; aria-label=a labelcontent/a If the aria-label text is used for accessible name, isPreferred will be true. 4) div id=labela label/divdiv role=radio aria-labelledby=labelcontent/div If the label text is used for the accessible name, isPreferred will be true. If this method returns true assistive technology may choose to present the user with the accessible name rather than the text from IAccessibleText::text. Parameters: isPreferred is true if the server prefers the use of the accessible name over the text from IAccessibleText::text. Return values: S_OK On 7/26/2011 6:45 PM, James Teh wrote: Sorry to be picky, but... :) On 27/07/2011 12:16 AM, Pete Brunet wrote: HRESULT isNamePreferred([out, retval] boolean* isPreferred); I think I like this new method name. Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name in preference to object's primary text. Perhaps in preference to *the* object's primary text (missing the) Since this method is only useful when IAText is implemented I think this method belongs in IAText instead of IA2_2. In that case I'd remove the S_FALSE return value. Is that acceptable? Makes sense. In that case, this sentence: This method is only useful when the IAccessibleText interface is implemented and a true value indicates that the accessible name is... can be changed to just: A true value indicates that the accessible name is... If others disagree that this belongs in IAText, I think that sentence should be changed to: This method is only useful when the IAccessibleText interface is implemented. In this case, a true value indicates that the accessible name is... (Currently, it sounds like it is only useful if a true value is returned. :)) Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Explicit name
I like the terms override and from context. I think Alex is saying explicit and override are the same, but it sounds like implicit == browser tries to fix name might be something different than from context. Alex, Are you saying that implicit indicates a third means of presenting content taken from the original content but adapted by the browser but not overridden by content attributes or content outside the node such as from a label? Pete On 7/23/2011 4:00 AM, Alexander Surkov wrote: Btw, I'm confused by your use of the term explicit name. I would have thought explicit name was the name the author explicitly requested (i.e. the override) rather than the original, non-overridden name. This is why I used terms like override and from content in my original proposal. We probably need to straighten out this terminology. Perhaps I'm the only one who is confused by this? :) explicit in means author specified it (for example, label element is used or ARIA), implicit is otherwise, i.e. when browser tries to fix name. Though I can see your point if you meant ARIA usage as a way to override name. Alex. On Sat, Jul 23, 2011 at 3:35 PM, James Teh ja...@nvaccess.org wrote: On 23/07/2011 2:43 AM, Pete Brunet wrote: Why doesn't NVDA just always use accName for normal browsing instead of IAText::text? If that were the case then there would be no need to know when accName is different than IAText::text. In NVDA browse mode (also known as virtual cursor, virtual buffer, etc. in other screen readers), the text is presented to the user in a flat representation to make it readable as if the user were working with, say, a word processor. Thus, we want to keep the content as close as possible to the original content. Some reasons we don't always use accName to retrieve this content (and this is by no means an exhaustive list): 1. accName might contain content from descendant objects; e.g. a table row, a link containing a graphic, etc. If we just use accName, we must choose to either ignore information from all descendant objects (thus losing semantic information) or render content from those descendant objects and try to filter out duplicates (very ugly and complicated). 2. In the case of editable text fields and some other form controls, the name is not what we want. Instead, we want the value or text. (If the label is visible on screen, we do render it, but that's because we take the content from the label object.) 3. accName contains no text attributes, so all information about formatting would be lost. (NVDA doesn't currently report this information for Firefox, but we plan to rectify this soon.) Of course, we still want to honour overrides like aria-label, etc., hence the request under discussion. Btw, I'm confused by your use of the term explicit name. I would have thought explicit name was the name the author explicitly requested (i.e. the override) rather than the original, non-overridden name. This is why I used terms like override and from content in my original proposal. We probably need to straighten out this terminology. Perhaps I'm the only one who is confused by this? :) Jamie -- James Teh Vice President, Developer NV Access Inc, ABN 61773362390 Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Explicit name
Thanks Jamie, That was very helpful. Here is the modified proposal then: A new IA2_2 method: HRESULT isNameFromAncillaryText([out, retval] boolean* isFromAncillaryText); With a short description of Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name. and a longer description of: Indicates that a content author has provided ancillary text in addition to the primary text of an object and that the server has chosen to use that ancillary text for this object's accessible name. An object's accessible name is typically is taken directly from the object's textual content and is equivalent to what is provided by IAccessibleText::text. In some cases the server may have access to additional text associated with the object that may be more meaningful for assistive technology users. This property is set to true when the server has chosen to use ancillary text rather than the accessible's primary textual content when generating the accessible name. Some examples that could be seen in an IAccessible2 implementation of a web browser are: 1) a href=http://www.adomain.com;content/a In this case the accessible name will be content and isFromAncillaryText will be false. 2) a href=http://www.adomain.com; title=a titlecontent/a If the title text is used for the accessible name, isFromAncillaryText will be true. 3) a href=http://www.adomain.com; aria-label=a labelcontent/a If the aria-label text is used for accessible name, isFromAncillaryText will be true. 4) div id=labela label/divdiv role=radio aria-labelledby=labelcontent/div If the label text is used for the accessible name, isFromAncillaryText will be true. If this method returns true assistive technology may choose to present the user with the accessible name rather than the text from IAccessibleText::text. If anyone would like changes to the above, please let me know. Thanks, Pete On 7/25/2011 5:36 PM, James Teh wrote: On 26/07/2011 2:06 AM, Pete Brunet wrote: Thanks Jamie, If both the accName and IAText::text are not helpful in this case then it appears that we need IA2_2::explicitName rather than a boolean property like IA2_2::isNameExplicit. You misunderstand me. Allow me to summarise: 1. We usually want to use IAccessibleText, as it gives us more information and keeps us closer to the content. 2. However, if the author has explicitly indicated that the content should be overridden for ATs (e.g. using aria-label), we want to use accName instead. 3. Unfortunately, we can't do (2) because we have no idea *when* the name has been explicitly overridden by the author. 4. Thus, the flag is enough. 4.1. If the flag indicates the name has been explicitly overridden, we'll use accName as per (2). 4.2. If not, we'll use IAccessibleText as per (1). 5. In the case of (4.1), text attributes don't matter. The author provided a name without formatting, so we'll just use it. Jamie -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Accessing specific actions without iteration [was Proposal for html5 media]
On 7/21/2011 9:03 PM, James Teh wrote: On 22/07/2011 11:40 AM, Pete Brunet wrote: What do you think of using IAAction::doAction with IA2 specified negative numbers That sounds good to me. I'm guessing IAccessible::doAction will throw E_INVALIDARG if the requested action is not available? Yes, that makes sense. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] IAccessibleEditableText2 - clipboard operations
I believe these are the issues related to clipboard operations 1) Copy should have been in IAText instead since copy doesn't require that an object be editable 2) The current selection should be used instead of offset parameters. 3) Other formats besides text can be copied to and pasted from the clipboard. I think the following proposal is in line with the prior discussion regarding a solution. - Deprecate the 3 clipboard operations from IAEditableText. (They are currently not in use.) - Provide 5 new preset action constants for copy, cut, pasteDefault, pasteFormatted, and pasteUnformatted. - pasteDefault: The result would be the same as Ctrl+V - pasteFormatted: The app has the choice of presenting a list of choices via a GUI or choosing the format without user interaction. - pasteUnformatted: The app would paste raw text. This could result in nothing being pasted, e.g. for an image, and IAAction::doAction would return S_FALSE. - The new clipboard actions would use the current selection(s). Is that acceptable? Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessibleEditableText2 - clipboard operations
Hopefully the current caret location would suffice. Are there caretless situations where we need an additional method pasteAtOffset? On 7/22/2011 1:53 PM, Richard Schwerdtfeger wrote: You may not have a selection for pasting. You may simply have an offset. Rich Schwerdtfeger CTO Accessibility Software Group Pete Brunet ---07/22/2011 01:42:03 PM---To all: Please let me know your preference for actions vs another interface. Assuming I understand P From: Pete Brunet p...@a11ysoft.com To: IA2 List accessibility-...@lists.linux-foundation.org Date: 07/22/2011 01:42 PM Subject: Re: [Accessibility-ia2] IAccessibleEditableText2 - clipboard operations Sent by: accessibility-ia2-boun...@lists.linuxfoundation.org To all: Please let me know your preference for actions vs another interface. Assuming I understand Peter the alternative is to deprecate the 3 existing clipboard methods in IAccessibleEditableText and then provide IAccessibleClipboard deriving from IAccessibleEditableText and providing 3 new methods: cut, copy, paste. All methods would use the selection, not offset parameters. paste would have a type enum parameter with values for default, formatted, and unformatted. Pete On 7/22/2011 1:00 PM, Peter Korn wrote: Pete, Thinking back about these discussions, I wonder if a better way to approach this is a new sub-interface: AccessibleClipboard. Then any object (container?) would implement this as appropriate for it. Peter On 7/22/2011 10:56 AM, Pete Brunet wrote: I believe these are the issues related to clipboard operations 1) Copy should have been in IAText instead since copy doesn't require that an object be editable 2) The current selection should be used instead of offset parameters. 3) Other formats besides text can be copied to and pasted from the clipboard. I think the following proposal is in line with the prior discussion regarding a solution. - Deprecate the 3 clipboard operations from IAEditableText. (They are currently not in use.) - Provide 5 new preset action constants for copy, cut, pasteDefault, pasteFormatted, and pasteUnformatted. - pasteDefault: The result would be the same as Ctrl+V - pasteFormatted: The app has the choice of presenting a list of choices via a GUI or choosing the format without user interaction. - pasteUnformatted: The app would paste raw text. This could result in nothing being pasted, e.g. for an image, and IAAction::doAction would return S_FALSE. - The new clipboard actions would use the current selection(s). Is that acceptable? Pete -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- Peter Korn | Accessibility Principal Phone: +1 650 506 9522 Oracle Corporate Architecture Group 500 Oracle Parkway | Redwood City, CA 94065 Oracle is committed to developing practices and products that help protect the environment ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] IAccessibleEditableText2 - clipboard operations
p.s. What is the advantages of subclassing? On the client side it would save a QI to switch from IAClipboard and IAEditableText. On the server side I don't think it matters because both interfaces would be implemented on the same object. The other issue is that copy can be done from editable or non-editable text so for a non-editable object a server would implement IAText and only the copy method of IAClipboard and none of the methods in IAClipboard's superclass. Due to that, if subclassing is the desired approach, it would be better to derive from IAText instead. For completeness I'm assuming you'd only want to use IAEditableText on an editable object. Pete On 7/22/2011 1:39 PM, Pete Brunet wrote: To all: Please let me know your preference for actions vs another interface. Assuming I understand Peter the alternative is to deprecate the 3 existing clipboard methods in IAccessibleEditableText and then provide IAccessibleClipboard deriving from IAccessibleEditableText and providing 3 new methods: cut, copy, paste. All methods would use the selection, not offset parameters. paste would have a type enum parameter with values for default, formatted, and unformatted. Pete On 7/22/2011 1:00 PM, Peter Korn wrote: Pete, Thinking back about these discussions, I wonder if a better way to approach this is a new sub-interface: AccessibleClipboard. Then any object (container?) would implement this as appropriate for it. Peter On 7/22/2011 10:56 AM, Pete Brunet wrote: I believe these are the issues related to clipboard operations 1) Copy should have been in IAText instead since copy doesn't require that an object be editable 2) The current selection should be used instead of offset parameters. 3) Other formats besides text can be copied to and pasted from the clipboard. I think the following proposal is in line with the prior discussion regarding a solution. - Deprecate the 3 clipboard operations from IAEditableText. (They are currently not in use.) - Provide 5 new preset action constants for copy, cut, pasteDefault, pasteFormatted, and pasteUnformatted. - pasteDefault: The result would be the same as Ctrl+V - pasteFormatted: The app has the choice of presenting a list of choices via a GUI or choosing the format without user interaction. - pasteUnformatted: The app would paste raw text. This could result in nothing being pasted, e.g. for an image, and IAAction::doAction would return S_FALSE. - The new clipboard actions would use the current selection(s). Is that acceptable? Pete -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- Peter Korn | Accessibility Principal Phone: +1 650 506 9522 Oracle Corporate Architecture Group 500 Oracle Parkway | Redwood City, CA 94065 Oracle is committed to developing practices and products that help protect the environment -- Pete Brunet a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo
[Accessibility-ia2] Registry API
Regarding the request to add a registry API to IA2, I think the consensus is that no changes are required at the present time. The work item may be reopened if the Mozilla team determines that the use of IsWinEventHookInstalled in inadequate. Is that correct? Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] Addition of a childrenChanged method
Since we have not received any information, use cases, or justification for adding a childrenChanged method I'll assume it is OK to drop this request from list of proposed changes for version 1.3. Are there any objections? Pete -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Proposal for html5 media
Thanks for reminding me of that Jamie. What do you think of using IAAction::doAction with IA2 specified negative numbers, e.g. enum IA2ActionConstants { IA2_ACTION_OPEN = -1, // Used to inform the server that the client will signal via IA2_ACTION_COMPLETE when it has consumed the content provided by the object. This action allows the object's server to wait for all clients to signal their readiness for additional content. Any form of content generation that requires synchronization with an AT would require use of this action. One example is the generation of text describing visual content not obvious from a video's sound track. In this scenario the TTS or Braille output may take more time than the related length of silence in the video's sound track. IA2_ACTION_COMPLETE = -2, // Used by the client to inform the server that it has consumed the most recent content provided by this object. IA2_ACTION_CLOSE = -3 // Used to inform the server that the client no longer requires synchronization. } Alternatively we can add a new method doNamedAction and use a BSTR input parameter, but the above has no impact on the existing interface. Pete On 7/21/2011 7:53 PM, James Teh wrote: On 22/07/2011 10:31 AM, Pete Brunet wrote: 2) IAccessibleAction and ARIA live regions should be used to synchronize the streaming of text descriptions as follows: If IAccessibleAction is to be used like this, we probably need to optimise the interface to allow for action constants, similar to the proposal for relations. Having to iterate through all actions is fairly inefficient. - The text cue is presented via a live region. There probably needs to be an additional attribute (or an additional value of the live attribute) to indicate that open and resume actions are required. Executing them otherwise is wasteful. Perhaps live:interactive? - A resume action indicates completion of the presentation of the text cue. Perhaps this should be generalised to just presentationDone, liveDone or similar. Resume makes it very specific to pausing/unpausing. However, it seems to me that it should be generalised to allow other actions when the AT has finished presenting the live update to the user. - An open action provides ref counting so that the video will not resume playback until all users of the interface signal readiness to proceed. To clarify, I assume both of these actions would be on the live region object? This makes the most sense to me. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] AViewer
I just ran across this http://www.paciellogroup.com/blog/2010/06/aviewer-beta/ Does anyone have a report on it? -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] How is MSAA+IA2 used for live regions
What aspects of MSAA+IA2 are used to implement live regions? -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Braille devices and live regions
p.s. In the case of a Braille user how would the user be notified of a polite update? I assume in this case only a notification is provided rather than automatically changing the POR. Would a message be forced onto the Braille display? And what means would be used to transfer the POR to the newly updated live region? Pete On 7/7/2011 11:34 PM, Pete Brunet wrote: On 7/7/2011 10:34 PM, James Teh wrote: On 8/07/2011 3:46 AM, Pete Brunet wrote: The case of text descriptions is similar, i.e. after reading the description the return to prior POR key could cause return to the video object (a non-text POR). I really don't think the live region aspect of this is relevant to braille users. For braille users, scrolling the display if they're already focused in the description object makes more sense. Being constantly bounced back and forth between PORs seems to me a fairly unlikely use case when consuming media. In any case: How do you envision non-video live regions working for a Braille user? How would the user get notified of an update and how would the user move to the newly updated content and then back to the point of interruption? One way to handle it would be to have Braille device contents automatically change to that of the live region. The change of contents would be the indication of a live region update. There would need to be a means to get back to the point of interruption and perhaps a Braille key could be used for that function. In the case of text descriptions there wouldn't be any back and forth. While listening to the audio track the hands would stay on the Braille device reading the text descriptions as they are received and after consumption of each one a Braille key would be pressed to request a resumption of playback. That Braille key could be the same one used in the case of non-video live regions. There would have to be some way to indicate the prior POR object, perhaps a new IA2 relation that links back to either the prior form control or caret offset in the case of a legacy live region or to the video element in the case of this new concept of a video text description live region. I don't think the API needs to cover this, not least because the POR might have been somewhere else entirely (e.g. screen reader review). If an AT wants to implement this, it should just keep track of the last POR itself, though as I noted above, I'm not convinced this is really useful. In the latter case the AT could activate IAccessibleAction::doAction on the accessilble object representing the video object to signal completion. That's actually a really interesting point and would avoid the need for a separate method. However, it would require a better action interface which can accept predefined action constants, as iterating through all actions is fairly inefficient. I'm thinking something similar to the proposed relations change. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Braille devices and live regions
After the Braille user has read the content in the live region the user will want to go back to the prior POR (point of regard). There would need to be a Braille key to do that. Has that aspect been thought of yet? The case of text descriptions is similar, i.e. after reading the description the return to prior POR key could cause return to the video object (a non-text POR). There would have to be some way to indicate the prior POR object, perhaps a new IA2 relation that links back to either the prior form control or caret offset in the case of a legacy live region or to the video element in the case of this new concept of a video text description live region. In the latter case the AT could activate IAccessibleAction::doAction on the accessilble object representing the video object to signal completion. In the case of TTS the AT could do the same when the TTS has completed. There is also the issue of the need to support multiple ATs and ref counting. Perhaps doAction could also be used here, e.g. the AT calls a doAction to open the video object, incrementing the counter at the start of TTS or Braille and the above mentioned completion doAction would decrement the counter when TTS is complete or the Braille user has signaled completion. Will the above work or do we need more discussion? At some point we'd need prototyping in one UA and one AT. (I assume any funding negotiations would be handled offline.) Pete On 7/5/2011 11:56 PM, James Teh wrote: NVDA currently doesn't notify of live region updates via braille. The only way to notify a braille-only user (e.g. blind deaf) of a live region change is to update the display in some way. Generally, I think optionally scrolling the display to the location of the change makes the most sense. Jamie On 6/07/2011 12:52 PM, Pete Brunet wrote: Regarding steaming text descriptions to Braille devices, the user would have to be notified that a new description is available. Is there a means to notify Braille users of updated contents that are available for access? This would be a similar scenario to live regions. How is a Braille user notified of a live region update? -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Braille devices and live regions
p.s. Besides incrementing the ref count the open action handler in the UA would set the pauseOnExitFlag and the completion action would cause the UA to reset it. BTW, I find that term a bit confusing because nothing is exiting. Perhaps something like pauseWhenDone or pauseOnCompletion? Pete On 7/7/2011 12:46 PM, Pete Brunet wrote: After the Braille user has read the content in the live region the user will want to go back to the prior POR (point of regard). There would need to be a Braille key to do that. Has that aspect been thought of yet? The case of text descriptions is similar, i.e. after reading the description the return to prior POR key could cause return to the video object (a non-text POR). There would have to be some way to indicate the prior POR object, perhaps a new IA2 relation that links back to either the prior form control or caret offset in the case of a legacy live region or to the video element in the case of this new concept of a video text description live region. In the latter case the AT could activate IAccessibleAction::doAction on the accessilble object representing the video object to signal completion. In the case of TTS the AT could do the same when the TTS has completed. There is also the issue of the need to support multiple ATs and ref counting. Perhaps doAction could also be used here, e.g. the AT calls a doAction to open the video object, incrementing the counter at the start of TTS or Braille and the above mentioned completion doAction would decrement the counter when TTS is complete or the Braille user has signaled completion. Will the above work or do we need more discussion? At some point we'd need prototyping in one UA and one AT. (I assume any funding negotiations would be handled offline.) Pete On 7/5/2011 11:56 PM, James Teh wrote: NVDA currently doesn't notify of live region updates via braille. The only way to notify a braille-only user (e.g. blind deaf) of a live region change is to update the display in some way. Generally, I think optionally scrolling the display to the location of the change makes the most sense. Jamie On 6/07/2011 12:52 PM, Pete Brunet wrote: Regarding steaming text descriptions to Braille devices, the user would have to be notified that a new description is available. Is there a means to notify Braille users of updated contents that are available for access? This would be a similar scenario to live regions. How is a Braille user notified of a live region update? -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] Braille devices and live regions
On 7/7/2011 10:34 PM, James Teh wrote: On 8/07/2011 3:46 AM, Pete Brunet wrote: The case of text descriptions is similar, i.e. after reading the description the return to prior POR key could cause return to the video object (a non-text POR). I really don't think the live region aspect of this is relevant to braille users. For braille users, scrolling the display if they're already focused in the description object makes more sense. Being constantly bounced back and forth between PORs seems to me a fairly unlikely use case when consuming media. In any case: How do you envision non-video live regions working for a Braille user? How would the user get notified of an update and how would the user move to the newly updated content and then back to the point of interruption? One way to handle it would be to have Braille device contents automatically change to that of the live region. The change of contents would be the indication of a live region update. There would need to be a means to get back to the point of interruption and perhaps a Braille key could be used for that function. In the case of text descriptions there wouldn't be any back and forth. While listening to the audio track the hands would stay on the Braille device reading the text descriptions as they are received and after consumption of each one a Braille key would be pressed to request a resumption of playback. That Braille key could be the same one used in the case of non-video live regions. There would have to be some way to indicate the prior POR object, perhaps a new IA2 relation that links back to either the prior form control or caret offset in the case of a legacy live region or to the video element in the case of this new concept of a video text description live region. I don't think the API needs to cover this, not least because the POR might have been somewhere else entirely (e.g. screen reader review). If an AT wants to implement this, it should just keep track of the last POR itself, though as I noted above, I'm not convinced this is really useful. In the latter case the AT could activate IAccessibleAction::doAction on the accessilble object representing the video object to signal completion. That's actually a really interesting point and would avoid the need for a separate method. However, it would require a better action interface which can accept predefined action constants, as iterating through all actions is fairly inefficient. I'm thinking something similar to the proposed relations change. Jamie ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] solution for video text descriptions
For non-deaf/blind users are there significant advantages of Braille over TTS such that TTS would not be a viable solution for providing text descriptions to a Braille user? My initial hunch is that there is not. I am asking because if cloud based TTS, as suggested by Peter Korn, is an acceptable solution for providing text descriptions and if it's also acceptable for Braille users then there is no need to design a means to synch between the UA and a client based AT. Do we have enough experience with cloud based TTS to know that this is an acceptable solution? If not, what is the current status of development and deployment? One concern might be latency. This is a high priority issue for AT users. Pete This is in response to one of the many threads inside the "next changes to IAccessible2" thread... On 6/22/2011 11:51 AM, Pete Brunet wrote: Hi Peter, What is DAISY solution for Braille users? I'm also interested in pointers to web/cloud TTS solutions. Thanks, Pete On 6/22/2011 11:40 AM, Peter Korn wrote: Rich, Sylvia, all, I think we have identified the key use case for extended descriptions in HTML video playback: for blind people who can hear. Deaf-blind would simply obtain all of the text (captions extended descriptions) and read them at their own speed. All of this API discussion is predicated on the assumption that the blind user's screen reader should read these extended descriptions, with some programmatic means of pausing/continuing video playback while the screen reader reads the text (at a speed unknown to the video player). But is this really the right answer? We are seeing more and more TTS engines available, many in the cloud. Why not simply have the video player optionally read the extended description, pausing the video while it does so? This is how we do DAISY book playback - we don't expect the screen reader to read the book, we expect the book player to read the text. Also doing it this way makes the result much more universally available. And it opens things up for a human being to read the extended descriptions - again similar to DAISY. Regards, Peter On 6/22/2011 6:27 AM, Richard Schwerdtfeger wrote: Pete, I am looking at accessibleDocument. Should we not do more than that for a document interface? Should we also have features to collect and access specific objects with a specific element type - filtering mechanisms? Note: I am in favor of not unnecessarily growing the API. API changes cause a lot of churn. However, with the FCC adopting creating new laws based on the 21st Century Communication and Video act there is a need for infrastructure to better support the HTML 5 changes Silvia is working on to support video and audio. I am looking at the notification mechanism for media MEDIA_TEXT_QUEUE_CHANGE. Would it be better to have a callback registry for ATs similar to what we did in Java? I am concerned about potential OS scheduling issues caused by posting events to the message queue. Rich Schwerdtfeger CTO Accessibility Software Group Pete Brunet ---06/06/2011 11:12:32 PM---Hi all, Please take a look at this and provide your feedback: https://wiki.mozilla.org/Accessibility From: Pete Brunet p...@a11ysoft.com To: IA2 List accessibility-...@lists.freestandards.org Date: 06/06/2011 11:12 PM Subject: Re: [Accessibility-ia2] next changes to IAccessible2 Sent by: accessibility-ia2-boun...@lists.linuxfoundation.org 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), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G On 3/11/2011 11:10 PM, Alexander Su
[Accessibility-ia2] Fwd: reorder events issue
Hi Alex, I went through the IA2 list archives and couldn't find the background on this. Is the history in a Mozilla bug perhaps? -Pete Original Message Subject:reorder events issue Date: Wed, 29 Jun 2011 16:07:53 -0500 From: Pete Brunet p...@a11ysoft.com Reply-To: p...@a11ysoft.com CC: IAccessible2 mailing list accessibility-...@lists.linux-foundation.org Alex, I don't remember the founding discussions for the reorder events issue. Please update the proposal wiki page with a link to that discussion. Thanks, Pete On 6/8/2011 3:53 AM, Alexander Surkov wrote: Hi, Jamie. If two continue set of children are added and removed then you get an array of two items IA2ChildrenChange. What's the problem of in-process calls? If you think this suggestion doesn't make too much sense then it's fine and let's drop it from proposal. But since this problem is bottle neck on certain cases, then we should start working on alternative way. Thank you. Alex. On Wed, Jun 8, 2011 at 5:34 PM, James Teh ja...@nvaccess.org wrote: Regarding Reorder event details: https://wiki.mozilla.org/Accessibility/IA2_1.3#Reorder_event_details One issue is that this introduces more in-process only calls into IA2. That is, you can of course make the call out-of-process, but it isn't useful because win events are async. I don't really have a solution to this problem without creating a new event system, but I think this is something worth noting nevertheless. :) Also, I think the way this works needs to be clarified; e.g. what happens if children are both added and removed. Jamie On 7/06/2011 2:09 PM, Pete Brunet wrote: 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), ptbru...@live.com (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 ja...@nvaccess.org mailto:ja...@nvaccess.org 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: ja...@nvaccess.org mailto:ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- James Teh Vice President, Developer NV Access Inc, ABN 61773362390 Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] text-position
Based on this thread https://lists.linux-foundation.org/pipermail/accessibility-ia2/2009-March/000765.html I added this paragraph to the text-position text attribute: Also consider the case of the html snippet, xsupasubi/sub/sup. A super or sub text attribute refers to the base line of the prior character which in turn may itself be offset from the baseline of the character in front of it. -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] Braille devices and live regions
Regarding steaming text descriptions to Braille devices, the user would have to be notified that a new description is available. Is there a means to notify Braille users of updated contents that are available for access? This would be a similar scenario to live regions. How is a Braille user notified of a live region update? -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 467-4706 (work), (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
[Accessibility-ia2] reorder events issue
Alex, I don't remember the founding discussions for the reorder events issue. Please update the proposal wiki page with a link to that discussion. Thanks, Pete On 6/8/2011 3:53 AM, Alexander Surkov wrote: Hi, Jamie. If two continue set of children are added and removed then you get an array of two items IA2ChildrenChange. What's the problem of in-process calls? If you think this suggestion doesn't make too much sense then it's fine and let's drop it from proposal. But since this problem is bottle neck on certain cases, then we should start working on alternative way. Thank you. Alex. On Wed, Jun 8, 2011 at 5:34 PM, James Teh ja...@nvaccess.org wrote: Regarding Reorder event details: https://wiki.mozilla.org/Accessibility/IA2_1.3#Reorder_event_details One issue is that this introduces more in-process only calls into IA2. That is, you can of course make the call out-of-process, but it isn't useful because win events are async. I don't really have a solution to this problem without creating a new event system, but I think this is something worth noting nevertheless. :) Also, I think the way this works needs to be clarified; e.g. what happens if children are both added and removed. Jamie On 7/06/2011 2:09 PM, Pete Brunet wrote: 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), ptbru...@live.com (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 ja...@nvaccess.org mailto:ja...@nvaccess.org 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: ja...@nvaccess.org mailto:ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- James Teh Vice President, Developer NV Access Inc, ABN 61773362390 Email: ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 689-4155 (cell) Skype: pete.brunet IM: ptbrunet (AOL, Google), ptbru...@live.com (MSN) http://www.a11ysoft.com/about/ Ionosphere: WS4G ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] next changes to IAccessible2
Rich, There is one MSAA method, accLocation, and three IA2 methods, IAText::characterExtents, IAImage::imageLocation, IAImage::imageSize. All these are getters. Are you asking if IAccessibleImage should include a means for returning a series of points? How would this information be used by AT? A side note: IAccessibleImage::imageLocation provides for fetching either screen or parent relative offsets. MSAA's accLocation only provides screen relative offsets. Thanks, Pete On 6/28/2011 2:04 PM, Richard Schwerdtfeger wrote: So, we are discussing making canvas accessible. Currently accessible objects take bounding rectangles yet drawing objects can be more complex. Should we introduce a drawing path to the API vs doing a best fit to a rectangle? Rich Rich Schwerdtfeger CTO Accessibility Software Group Pete Brunet ---06/28/2011 01:57:10 PM---AT devs, do you use IAccessibleEditableText? Is there a kind of AT that can't use the GUI for clipbo From: Pete Brunet p...@a11ysoft.com To: Cc: IA2 List accessibility-...@lists.linux-foundation.org Date: 06/28/2011 01:57 PM Subject: Re: [Accessibility-ia2] next changes to IAccessible2 Sent by: accessibility-ia2-boun...@lists.linuxfoundation.org AT devs, do you use IAccessibleEditableText? Is there a kind of AT that can't use the GUI for clipboard operations? The same question often comes up regarding IAccessibleAction, i.e. why have actions if the same thing can be done via the GUI. My understanding is that this is for those who can't use the mouse and keyboard. Do ATs for those users not have the ability to use GUI menus? Pete On 6/28/2011 2:29 AM, Malte Timmermann wrote: Actually, it's also not clear to me why the clipboard stuff exists at all. Maybe it was introduced with JAA/ATK, because there is no "standard platform mechanism" on all supported platforms? I don't know - how would an AT tell any application on GNOME or Mac to copy/paste, w/o faking some key events? The clipboard API is incomplete anyway. For example, I don't have an equivalent API for copy/paste on a drawing document or a bitmap editor. Only for objects supporting accessible text. Malte. Carolyn MacLeod wrote, On 27.06.2011 21:06: An excellent point, Peter. In fact, I just read Malte's discussion on the same API, and something he said - "If [the user] really is interested in selecting a certain format, he can use the dialog in the application." - reminded me of our initial reaction when we were asked to implement IAccessibleEditableText::copyText, cutText, and pasteText in our StyledText control namely, "Why??". Why do AT need a separate way of doing something that every editable text control already provides by a multitude of standard platform mechanisms? I still don't have the answer. However, since we implemented IAccessibleEditableText in order to provide insert/replace/delete and allow setting of attributes, we then implemented cut/copy/paste anyway, but only because they were in the same interface. Our second question was "What are the offsets for? Why not just use the selection?". The answer to that was that since IAccessibleText::copy needed offsets because there might not be a selection, someone decided that IAccessibleEditableText cut/copy/paste needed offsets, too, for consistency. This was an unfortunate decision, because it gives these methods a very strange side effect: the server is forced to change the selection to match the offsets before doing the clipboard operation. We grudgingly implemented these methods, and hoped that no AT would ever send us any offsets other than those for the already existing selection. :) (Epilogue: I cannot find a definition of IAccessibleText::copy anywhere, so th
Re: [Accessibility-ia2] next changes to IAccessible2
On 6/22/2011 8:27 AM, Richard Schwerdtfeger wrote: Pete, I am looking at accessibleDocument. Should we not do more than that for a document interface? Should we also have features to collect and access specific objects with a specific element type - filtering mechanisms? Hi Rich, It's been a long time since I looked at accessibleDocument. (It's not part of IA2.) I couldn't find a link in my archives. Please send it. Would that discussion be better held on the parent LF a11y list at accessibil...@lists.linux-foundation.org ? That will also be of interest to the Linux a11y architects. Note: I am in favor of not unnecessarily growing the API. API changes cause a lot of churn. However, with the FCC adopting creating new laws based on the 21st Century Communication and Video act there is a need for infrastructure to better support the HTML 5 changes Silvia is working on to support video and audio. I am looking at the notification mechanism for media MEDIA_TEXT_QUEUE_CHANGE. Would it be better to have a callback registry for ATs similar to what we did in Java? I am concerned about potential OS scheduling issues caused by posting events to the message queue. We've talked about adding something to get around the limitations of WinEvent, primarily the lack of an event payload so out of process AT don't have to use (and possibly get stale data) on a following call fetching event data. It's not become enough of an issue that the group has pushed that change through though. For in process AT the callback happens on the same thread that fires the event. Jamie might be able to comment on what problems there might be for out of process AT when handing a cue change event. Rich Schwerdtfeger CTO Accessibility Software Group Pete Brunet ---06/06/2011 11:12:32 PM---Hi all, Please take a look at this and provide your feedback: https://wiki.mozilla.org/Accessibility From: Pete Brunet p...@a11ysoft.com To: IA2 List accessibility-...@lists.freestandards.org Date: 06/06/2011 11:12 PM Subject: Re: [Accessibility-ia2] next changes to IAccessible2 Sent by: accessibility-ia2-boun...@lists.linuxfoundation.org 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), ptbru...@live.com (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 ja...@nvaccess.org 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: ja...@nvaccess.org Web site: http://www.nvaccess.org/ ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 ___ Accessibility-ia2 mailing list Accessibility-ia2@lists.linuxfoundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
Re: [Accessibility-ia2] next changes to IAccessible2
Hi Peter, What is DAISY solution for Braille users? I'm also interested in pointers to web/cloud TTS solutions. Thanks, Pete On 6/22/2011 11:40 AM, Peter Korn wrote: Rich, Sylvia, all, I think we have identified the key use case for extended descriptions in HTML video playback: for blind people who can hear. Deaf-blind would simply obtain all of the text (captions extended descriptions) and read them at their own speed. All of this API discussion is predicated on the assumption that the blind user's screen reader should read these extended descriptions, with some programmatic means of pausing/continuing video playback while the screen reader reads the text (at a speed unknown to the video player). But is this really the right answer? We are seeing more and more TTS engines available, many in the cloud. Why not simply have the video player optionally read the extended description, pausing the video while it does so? This is how we do DAISY book playback - we don't expect the screen reader to read the book, we expect the book player to read the text. Also doing it this way makes the result much more universally available. And it opens things up for a human being to read the extended descriptions - again similar to DAISY. Regards, Peter On 6/22/2011 6:27 AM, Richard Schwerdtfeger wrote: Pete, I am looking at accessibleDocument. Should we not do more than that for a document interface? Should we also have features to collect and access specific objects with a specific element type - filtering mechanisms? Note: I am in favor of not unnecessarily growing the API. API changes cause a lot of churn. However, with the FCC adopting creating new laws based on the 21st Century Communication and Video act there is a need for infrastructure to better support the HTML 5 changes Silvia is working on to support video and audio. I am looking at the notification mechanism for media MEDIA_TEXT_QUEUE_CHANGE. Would it be better to have a callback registry for ATs similar to what we did in Java? I am concerned about potential OS scheduling issues caused by posting events to the message queue. Rich Schwerdtfeger CTO Accessibility Software Group Pete Brunet ---06/06/2011 11:12:32 PM---Hi all, Please take a look at this and provide your feedback: https://wiki.mozilla.org/Accessibility From: Pete Brunet p...@a11ysoft.com To: IA2 List accessibility-...@lists.freestandards.org Date: 06/06/2011 11:12 PM Subject: Re: [Accessibility-ia2] next changes to IAccessible2 Sent by: accessibility-ia2-boun...@lists.linuxfoundation.org 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), ptbru...@live.com (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 ja...@nvaccess.org 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