mozilla :: #accessibility

14 Feb 2017
08:29quack1Hi guys
08:30quack1I'm looking for information about the implementation of MSAA in Firefox, and especially how the browser handles methods like AccessibleObjectFromWindow(), QueryInterface() or get_accValue()
08:31quack1Actually, I'm looking at a software that uses this to retrieve the URL of the current page open in Firefox, and I would like to know how the browser get that value and send it back
08:32quack1can you point me to some doc page or source code that could help me ?
08:32quack1thx !
08:44b4nhi! can anyone give me pointers on ?
08:44firebotBug 472448 ASSIGNED, Minimonth missing accessible name and navigation
08:45b4nthat is, how to get a proper accessible table in XUL, but hopefully that doesn't change the whole code :)
09:30Jamieb4n: I don't know that much about XUL, but I believe you can use all ARIA properties. So, that means you should be able to use role="table, role="row", role="cell"
09:30b4nJamie: I did that but it's not enough as it doesn't lead to the container implementing the Table accessible interface
09:31b4nwhich is apparently what AT will use to find the corresponding headings and alike
09:31Jamieb4n: If the table isn't structured as cells inside rows inside tables, you can use role="presentation" to hide intermediate crap If you need to restructure the tree completely, you can use aria-owns, but that's kinda harder to get right/maintain
09:32Jamieb4n: That's odd. ARIA roles normally cause the table interfaces to happen. Does it even expose the role correctly?
09:33b4nJamie: yes I get proper roles (I see them in Accerciser, so aftr expot to the AT layer)
09:33b4nI have grid/row/cell
09:33b4nand columnheader
09:34b4nbut still no Table interface on the role=grid
09:34JamieBleh. That's... frustrating. Are there any intermediate accessibles or just cells inside rows inside table?
09:34b4njust that
09:34b4nalthough it's actually nested boxes for the moment, but I tried a true grid and didn't help
09:35JamieAnd if you do identical ARIA but with divs, it works? That'd be a quick way to verify something's not borked with the ARIA stuff
09:35b4nfor now it&#39;s <vbox role=grid><hbox role=row><text role=gridcell/>...
09:35b4nI can check
09:35b4nif I can get html not doing too weird stuff in here
09:35b4ngimme a sec
09:36Jamieb4n: Very probably your ARIA is correct, but that&#39;s a quick way to double check
09:36b4nshould I do that in the XUL or test on a true webpage?
09:39b4nJamie: hey! it works with html:div
09:40b4nI get a Table interface, and the right rows/column counts
09:40b4nso something&#39;s borked with the XUL implementation here?
10:25Jamieb4n: I guess so... but you&#39;d have to ask someone else about that; I don&#39;t know the code base that well
10:25JamieKinda surprises me though
10:25b4nthanks anyway, that&#39;s a great finding!
10:25b4nyeah sounds werid
10:26JamieI guess the XUL accessibles are actually separate code, but I sorta assumed the ARIA bit was common. Otherwise, there&#39;d have to be duplicate implementations
10:30b4nit would make sense, I can&#39;t really imagine one wanting to implement all of it twice :)
13:26tbsaundeb4n: well preferably use html divs and aria
13:26tbsaundeb4n: using xul I&quot;m curious why you aren&#39;t using <grid> or <tree> and whatever instead of just boxes
13:27tbsaundeand for it to be an accessible table I think it basically needs to be grid / tree / list I forget the exact details
14:01b4ntbsaunde: I&#39;m using boxes because that&#39;s what is already there
14:02b4nand using <grid> doesn&#39;t help
14:03b4n<tree> gives a table accessible, but doesn&#39;t seem very suitable for what is needed (equal-size grids, columns and row headers)
14:05b4nequally-sized cells*
14:06tbsaundeb4n: well, if you want to use xul I think your choices are basically bindings that inherit from either xul tree or xul listbox
14:07tbsaundeI think thunderbird uses xul tree with multiple columns, not sure if that&#39;s close to what you want though
14:08b4nnot really, I need a well spreadsheet-style grid I guess. It&#39;s for displying the calendar
14:08b4ntbsaunde: and there&#39;s no way to make a XUL element have the table interface, atlhough it works with HTML elements?
14:09tbsaundeb4n: then I think your reasonable choices are html table or aria
14:09b4nwhich part of ARIA?
14:09tbsaundeyou can put html in a xul document, but there may be interesting layout things
14:10b4nas said, role isn&#39;t enough on XUL elements apparently
14:10b4nand HTML seems to have a sufficiently different API to break all the existing code touching the elements. But if it&#39;s the only solution
14:11tbsaundeb4n: yes, you need to use it on html ones
14:11b4nwhat is the reason why it can&#39;t work on XUL if it&#39; snot too nosy?
14:12tbsaundethere are different C++ classes to implement different sorts of elements, and the specific way that logic works you won&#39;t get the class for aria grids unless you use html
14:13tbsaundeI&#39;m not sure exactly why that last bit is that way, but I&#39;m not terribly excited to go figure out xul stuff, but you want to work on it feel free
14:13b4nI seen accessibleType attribute in the docs, shuoldn&#39;t that help? I didn&#39;t yet figure out how i&#39;d work, but it suonded related
14:14tbsaundeb4n: not sure what you mean
14:16tbsaundeb4n: well, not really, the classes would still work the same way
14:16tbsaundealso that stuff got removed a while ago
14:16b4noh, ok
14:42davidbquack1: please try not to use MSAA for that. The complex accessibility code will wake up in Firefox and you&#39;ll pay a performance cost for the rest of the session.
16:23firebotNew Core - Disability Access APIs bug 1339472 filed by
16:23firebot NEW, refer to DocAccessibleParents by id
16:24davidbtbsaunde: mhoye showed me his STR for bug 1336770 and is willing to help in any way if needed
16:24firebot NEW, Crash in nsTArray_Impl<T>::IndexOf<T> | mozilla::a11y::ProxyAccessibleBase<T>::ClearChildDoc
16:26tbsaundedavidb: honestly at this point I&#39;m kind of tempted to not bother try and debug on windows and just hash table and null check my way to some sort of victory
16:26davidbtbsaunde: will it be revisited for a true fix?
16:27davidbTo be clear, I&#39;m not against desperate measures.
16:27quack1@~davidb actually I&#39;m not using it, just looking at a piece of code that use it, and I would understand how it interact with Firefox :p
16:27tbsaundedavidb: well, I hope some day we&#39;ll find a way to reproduce some of this under rr
16:27tbsaundeor at least on linux
16:27quack1If you have some pointers, that would be nice :)
16:28tbsaundesomeone else can certainly try and examin what&#39;s going on and there should be asserts that trip when bad things happen
16:31davidbquack1: I&#39;d look for examples on MSDN
16:34davidbquack1: this is old but possibly useful
17:04quack1@~davidb thx, I&#39;ll look at that !
18:03yzentbsaunde hi
18:04tbsaundeyzen: pong
18:04yzentbsaunde just a question about one of the DocAccessibleParents map patches
18:05yzenabout the LiveDocs() being a function instead of a static variable, is there a reason for that ?
18:06tbsaundeyzen: to avoid a static constructor that runs when libxul is loaded
18:34eeejayfyi, there is a bag manufacturer in seattle called &quot;tom bihn&quot;. i ordered a sleeve there recently, and need to pick it up. if anyone wants me to pick something up for them and bring it to toronto, let me know!
22:25eeejaytbsaunde: ping?
22:27tbsaundeeeejay: pong
22:28eeejaythat bug i reviewed, 1339128. was it supposed to fix the crash in bug 1339168?
22:28firebot NEW, Crash in mozilla::a11y::DocAccessibleParent::RemoveChildDoc
22:29tbsaundeeeejay: yeah sort of
22:29eeejayi&#39;ll make it a dep?
22:29eeejayworth looking at that and seeing if gets demoted from the top crashers
22:29tbsaundego ahead
23:01JamieUg. Seeing these random freezes in Firefox nightly *without* e10s and I&#39;m never in a position to actually edebug them
23:06Jamieoo. caught it
23:19Jamietbsaunde: um... so, I&#39;m seeing what I&#39;m pretty sure is an infinite loop in mozilla::a11y::TableCellAccessible::ColHeaderCells
23:20Jamietbsaunde: interestingly, it seems to be occurring in the middle of a js script modal dialog
23:36tbsaundeJamie: strange
23:36tbsaundenone of that has changed in... ages afaik
15 Feb 2017
No messages
Last message: 7 days and 4 minutes ago