feat(unix): implement AT-SPI Table and TableCell interfaces - #790
feat(unix): implement AT-SPI Table and TableCell interfaces#790rit3sh-x wants to merge 1 commit into
Conversation
|
@DataTriny could you review it? |
|
Hello @rit3sh-x, Did you use an LLM to write all of this? |
|
@DataTriny I did use it for writing some tests. Is there some AI Policy? |
|
I was also working on the Image and HyperText APIs. |
|
@rit3sh-x I only reviewed a small portion of your changes, which is enough for me to conclude that you either used an LLM way more than you claim, or you didn't really understand what you were doing. I am not going to review the rest. Quick note on the tui-a11y project you mention in the PR description: proper terminal emulators already emit their own accessibility tree with the content of the text buffer, any scroll bar, tabs... And they know when their window gains or loses focus. While the AT-SPI protocol doesn't enforce it, you must not create an accessibility tree if the application already emits one, this responsibility falls on who creates and manages the window. Your library is only going to confuse assistive technologies like Orca. Please stop that. Respectfully. |
|
Sorry if it felt like the code was fully LLM generated. I did use an LLM for some of the tests, but I worked through the implementation myself. My main motivation for tui-a11y was accessibility for lower-level TUIs/CLIs, rather than advanced terminal emulators like Warp that already have their own accessibility tree. I appreciate the feedback, and I'll try to make sure my code doesn't come across as AI-generated in the future. |
Summary
org.a11y.atspi.Tableandorg.a11y.atspi.TableCellon the Unix (AT-SPI) adapter - the two interfacesaccesskit_unixwas missing for table/grid content.Role::Rowchildren, falling back torow_index/column_indexfor flat ARIA-grid-style tables that have noRowchildren.accesskit::Node- this is AT-SPI glue, not new data modeling.IsRowSelected,GetSelectedColumns, ...) now only countCell/GridCellchildren, excludingRowHeader/ColumnHeader. Apps commonly never callset_selectedon header cells, so counting them would permanently block any headered table from ever reporting a selected row/column.Test plan
cargo test(workspace default members)cargo test -p accesskit_atspi_common(8 new unit tests covering interface gating, row/col counts,GetIndexAt/GetRowAtIndex/GetColumnAtIndexround-trip, headers/descriptions, selection queries,AddRowSelectionaction dispatch)cargo test -p accesskit_unix(3 new tests exercising the D-Bus-facingTableInterfacedirectly)cargo clippy -p accesskit_atspi_common -p accesskit_unix --all-targets -- -D warningscargo fmt --check