When NVDA is set to read columns in Excel columns aren't read if there is separation between column headers and data. #5396

nvaccessAuto opened this Issue Oct 1, 2015 · 7 comments


None yet

3 participants


Reported by csm120 on 2015-10-01 23:32
I've seen this behavior in Excel 2010, 2013, and 2016.

  1. In Excel make 3 columns from a1 to c3.
  2. Type data starting in a3.
  3. Use NVDA+Shift+c on a1.
  4. Reading of columns is spotty or not happening unless you delete the blank row at a2.
    I have tried this with NVDA 2015.3, and with latest snaps.
    I need the columns to be read even if there is separation between the column headers and the data. I'm attaching a file.

Attachment NVDA Columns.xlsx added by csm120 on 2015-10-01 23:33
Excel spreadsheet with columns set to read in NVDA


Comment 1 by jteh on 2015-10-02 09:16
This is because Excel defines a blank row or column to indicate a new region. In order to facilitate headers for different regions, NVDA honours this and only reports headers within the region.

That said, this seems to be causing a lot of confusion and I wonder whether we need to drop the region support. The reality is that regardless of whether Excel defines these as new regions, users (rightly or wrongly) don't seem to care.


Comment 2 by bramd on 2015-10-26 22:34
The region support is useful in some situations. We might "extend" the search for headers to regions left/above of the current region if the current region doesn't define headers? This might be what users expect and still allows for per region headers. That being said, this is just from a functional perspective and I don't know if there are any technical issues preventing this.

@jcsteh jcsteh added the incubating label Jan 27, 2016
@jcsteh jcsteh added this to the 2016.2 milestone Jan 27, 2016
jcsteh commented Jan 27, 2016 edited

This was incubated months ago in b283199, but the automated script didn't catch it for some reason.

There are a couple of additional things that are needed for this:

  • If one defines two sets of headers, the first set will be read as the headers when moving over the second set of headers. For example, if a1 and c1 are set as column headers, a1 will be read as a header when moving from c2 to c1. We shouldn't search for a header in the same axis for a cell which is a header in that axis itself.
  • #4409 fixed an issue which caused exceptions in a protected sheet if reporting of headers was enabled. I think (but am not sure) that this just disables headers, rather than just disabling region checks. That case needs to be checked.
@michaelDCurran michaelDCurran added a commit that referenced this issue Mar 8, 2016
@michaelDCurran michaelDCurran Revert "Excel: automatic reading of column and row headers are no lon…
…ger limited to an Excel region. First try of #5396.

This reverts commit dbfe229.

Incubated in c7ec64c.


Incubated in 6637f7f.

jcsteh commented May 6, 2016

Note: c14f16e in next on 12 April reverted 35f0f0d.

@jcsteh jcsteh added a commit that closed this issue May 6, 2016
@jcsteh jcsteh In Microsoft Excel, NVDA no longer ignores a column header for a cell…
… when there is a blank row between the cell and the header.

Also, coordinates are now announced before headers to eliminate ambiguity between headers and content.

* Don't limit entirely to region. Rather:
* Don't allow matching on row or column headers in a different region horizontally.
* Always search for column and row headers  by row (I.e. the closest row first).
* Refuse to find column headers when on a column header, or row headers when on a row header.

Fixes #5396.
@jcsteh jcsteh closed this in cd75416 May 6, 2016
@nvaccessAuto nvaccessAuto removed the incubating label May 6, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment