Skip to content

Report row and column span for table cells in speech and braille#7872

Merged
michaelDCurran merged 10 commits into
nvaccess:masterfrom
BabbageCom:tableCellSpan
Mar 6, 2018
Merged

Report row and column span for table cells in speech and braille#7872
michaelDCurran merged 10 commits into
nvaccess:masterfrom
BabbageCom:tableCellSpan

Conversation

@LeonarddeR

@LeonarddeR LeonarddeR commented Dec 21, 2017

Copy link
Copy Markdown
Collaborator

Link to issue number:

Partial fix for #2642.

Summary of the issue:

When a table cell spans multiple rows and/or columns, this is currently not reported by NVDA by default, only in Microsoft Excel.

Description of how this pull request fixes the issue:

This pr reports row and column span with both speech and braille.

Examples

  • For a cell in row 1 and column 1, spanning two columns

    • Old output: row 1 column 1
    • New speech output: row 1 column 1 through 2
    • New braille output: r1 c1-2
  • For a cell in row 1 and column 1, spanning two rows

    • Old output: row 1 column 1
    • New speech output: row 1 through 2 column 1
    • New braille output: r1-2 c1
  • For a cell in row 1 and column 1, spanning two rows and two columns

    • Old output: row 1 column 1
    • New speech output: row 1 column 1 through row 2 column 2
    • New braille output: r1-2 c1-2

The reason why the latter speech output differ from the former, is that, especially with faster speech rates, it feels a bit more clear to only have the word through once. However, this is open to a debate.

Testing performed:

Tested the following applications

  • Mozilla Firefox
  • Google Chrome
  • Internet Explorer
  • Microsoft Edge
  • Microsoft Excel in UIA mode, don't ask me how, it was hacky.

Known issues with pull request:

This does not work for Word yet as noted in #2642. However, I'm pretty sure that this code will work out of the box for the UIA implementation of Word (#7849).

Change log entry:

@derekriemer

Copy link
Copy Markdown
Collaborator

Suggested change to
"Reporting of column or row span is now supported in more cases when working with tables."

@michaelDCurran

Copy link
Copy Markdown
Member

It would be good to implement columnSpan / rowSpan NVDAObject properties for IAccessible NVDAObject and UIA NVDAObject, so that row and column spans are announced outside of documents. I can take a look at this at some point if you're not sure where to start.

@michaelDCurran

Copy link
Copy Markdown
Member

Actually, I'm required by another contract to support row / col span for IAccessible2. I'll add this support on top of this branch.

@LeonarddeR

LeonarddeR commented Jan 26, 2018

Copy link
Copy Markdown
Collaborator Author

@michaelDCurran commented on 26 Jan 2018, 02:00 CET:

It would be good to implement columnSpan / rowSpan NVDAObject properties for IAccessible NVDAObject and UIA NVDAObject, so that row and column spans are announced outside of documents.

This is already there for UIA, it has just not been used.

Actually, I'm required by another contract to support row / col span for IAccessible2. I'll add this support on top of this branch.

In that case, I'll leave this branch alone until further notice.

Note that it might be good to think about a generic way to present row and column span when there is cellCoordsText (i.e. when a cell in Google Sheets is merged). In Excel, cellCoordsText is actually always empty, it seems.

@michaelDCurran michaelDCurran left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just pushed support for IAccessible2 row/column span.

@LeonarddeR LeonarddeR left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your two last commits look ok, thanks a lot. You could consider changing the Copyright headers while at it.

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

@michaelDCurran: Have you actually tested this IAccessible2 code somewhere it can be easily confirmed to work? LibreOffice, for example?

@michaelDCurran

michaelDCurran commented Feb 2, 2018 via email

Copy link
Copy Markdown
Member

…d arguments to fulfill a desire of checkpot which will otherwise throw warnings
@michaelDCurran

Copy link
Copy Markdown
Member

The following html file can be used to test rowspan and colspan in Focus mode in Firefox. Open the page in Firefox, switch to focus mode and tab through the links. The table is a 3 by 3 grid of cells, each one containing a link. However, row 1 column 1 has a colspan of 2, and row 2 column 1 has a rowspan of 2.
cellSpans.html.txt

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

I've done some research on support row/columnspan in LibreOffice, but it looks like they don't implement IAccessibleTableCell. I'm afraid it is therefore impossible at the moment.

@michaelDCurran michaelDCurran merged commit 91a0d23 into nvaccess:master Mar 6, 2018
@nvaccessAuto nvaccessAuto added this to the 2018.1 milestone Mar 6, 2018
@michaelDCurran michaelDCurran removed this from the 2018.1 milestone Mar 13, 2018
@michaelDCurran michaelDCurran added this to the 2018.2 milestone Mar 13, 2018
@LeonarddeR LeonarddeR added the BabbageWork Pull requests filed on behalf of Babbage B.V. label Oct 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BabbageWork Pull requests filed on behalf of Babbage B.V.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants