Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microsoft Excel: Some Characters not Being Read When Editing Formulas #4372

Open
nvaccessAuto opened this issue Aug 8, 2014 · 6 comments
Open

Comments

@nvaccessAuto
Copy link

Reported by ateu on 2014-08-08 10:44
Received from the Portuguese list.

Some members have reported that in Microsoft Excel, NVDA is not reading some characters contained in formulas
This occurs when arrowing inside the formula while editing it.
spaces are not read and sometimes, ( and ) and other symbols.

All members uses 64 bit versions, and Office 2007 and 2010.

@LeonarddeR
Copy link
Collaborator

Somehow confirmed with Excel 2016, however it turns out that NVDA just says nothing freeze for like two seconds and then reads the character.

@bhavyashah
Copy link

Confirmed in a similar way in Excel 2010 and NVDA 2017.3 on a Windows 8.1 64 bit system. I entered a formula in cell A1 containing brackets, mathematical operators and numbers. Once I checked the output, pressed F2 to recheck the formula, NVDA skipped many characters while I arrowed left and right and wrongly reported them as "space" instead. I think this is a pretty serious bug with Excel support, since editing and working with formulae becomes substantially challenging with standard navigation. At the same time, let me add that the review cursor works like a charm as a work-around.

@Adriani90
Copy link
Collaborator

I can also reproduce it in Excel 2010 with NVDA 2017.3 on Win 8.1. Especially space and brackets but also punctuations is skiped if the formula is too Long.

@Adriani90
Copy link
Collaborator

However, in short formulas I didn't see this issue. It may have something to do with the cell width or visibility of the text. @Qchristensen any further thoughts on this one?

@Qchristensen
Copy link
Member

On Excel 365, I just tested a formula with 156 characters. As I pressed right arrow, I noticed a slight pause on the character AFTER a parenthesis (bracket), but it did read every character (if I waited).

Looking through the log, there was a handful of errors when I first pressed F2, but nothing as I arrowed through the formula. The general delay between pressing the right arrow, and a character being announced was 30 - 50ms. For the character after a parenthesis, however, the delay was around 330ms. I didn't find much difference with spaces in my test. Visually, I did notice if I right arrow quickly, I can notice a slight pause after moving past each bracket.

I have "Allow editing directly in cells" turned off in Excel's advanced options, as this currently doesn't work with NVDA. So, the formula appears in the formula bar and scrolls as needed if the formula (as in this case) is longer than will visually fit in the bar all at once.

Even with that option turned on, the formula is almost always wider than will visually display in a cell and Excel overcomes this by displaying the formula from the start of the cell to the right edge of screen and down on subsequent rows (visually) while editing. Other than that, the appearance of theformula itself is the same - cell addresses are highlighted in colour, as are the cells they point to, and multiple nested brackets are also denoted in colour. NVDA doesn't read anything with that option on, so I can't test as scientifically.

So, there's something going on, but aside from the original errors when pressing F2, it's not generating errors when moving past parenthesis, just slowing down.

Here's the relevant part of my log (the number in brackets next to each "speaking" line is my note on the time it took between pressing the key and speaking):

IO - inputCore.InputManager.executeGesture (15:13:29.434):
Input: kb(desktop):f2
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.841):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23894 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.842):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23895 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.844):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23896 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.845):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23897 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.848):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23898 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.851):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23899 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.854):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23900 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.857):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23901 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (15:13:29.858):
oleacc.AccessibleObjectFromEvent with window 3804382, objectID 23902 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - NVDAObjects.window.excel.ExcelBrowseModeTreeInterceptor.get_isAlive (15:13:30.546):
could not compare sheet names
Traceback (most recent call last):
File "NVDAObjects\window\excel.pyo", line 452, in get_isAlive
File "comtypesMonkeyPatches.pyo", line 35, in new__getattr

File "comtypes\client\lazybind.pyo", line 168, in getattr
File "comtypes\automation.pyo", line 729, in _invoke
COMError: (-2147418111, 'Call was rejected by callee.', (None, None, None, 0, None))
IO - speech.speak (15:13:30.585):
Speaking [LangChangeCommand ('en_GB'), u'Formula Bar edit']
IO - speech.speak (15:13:30.627):
Speaking [LangChangeCommand ('en_GB'), u'baseline', u'B8)A2-D7(C2+D3+B1+B7+B8)*A2-D7']
IO - inputCore.InputManager.executeGesture (15:13:31.002):
Input: kb(desktop):control+home
IO - speech.speak (15:13:31.055):
Speaking [LangChangeCommand ('en_GB'), u'B8)A2-D7(C2+D3+B1+B7+B8)*A2-D7']
IO - inputCore.InputManager.executeGesture (15:13:32.394):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:32.443):
Speaking character u'left paren' (49)
IO - inputCore.InputManager.executeGesture (15:13:32.845):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:33.180):
Speaking character u'C' (335)
IO - inputCore.InputManager.executeGesture (15:13:33.503):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:33.543):
Speaking character u'2' (40)
IO - inputCore.InputManager.executeGesture (15:13:33.967):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:34.016):
Speaking character u'space' (49)
IO - inputCore.InputManager.executeGesture (15:13:34.430):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:34.467):
Speaking character u'plus' (37)
IO - inputCore.InputManager.executeGesture (15:13:34.903):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:34.934):
Speaking character u'space' (31)
IO - inputCore.InputManager.executeGesture (15:13:35.325):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:35.372):
Speaking character u'D' (47)
IO - inputCore.InputManager.executeGesture (15:13:35.782):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:35.825):
Speaking character u'3' (43)
IO - inputCore.InputManager.executeGesture (15:13:36.280):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:36.326):
Speaking character u'space' (46)
IO - inputCore.InputManager.executeGesture (15:13:36.710):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:36.750):
Speaking character u'plus' (40)
IO - inputCore.InputManager.executeGesture (15:13:37.134):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:37.170):
Speaking character u'space' (36)
IO - inputCore.InputManager.executeGesture (15:13:37.582):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:37.622):
Speaking character u'B' (40)
IO - inputCore.InputManager.executeGesture (15:13:38.013):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:38.059):
Speaking character u'1' (46)
IO - inputCore.InputManager.executeGesture (15:13:38.438):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:38.482):
Speaking character u'space' (44)
IO - inputCore.InputManager.executeGesture (15:13:38.878):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:38.920):
Speaking character u'plus' (42)
IO - inputCore.InputManager.executeGesture (15:13:39.326):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:39.378):
Speaking character u'space' (52)
IO - inputCore.InputManager.executeGesture (15:13:39.736):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:39.780):
Speaking character u'B' (44)
IO - inputCore.InputManager.executeGesture (15:13:40.214):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:40.253):
Speaking character u'7' (39)
IO - inputCore.InputManager.executeGesture (15:13:40.630):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:40.671):
Speaking character u'space' (41)
IO - inputCore.InputManager.executeGesture (15:13:41.069):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:41.105):
Speaking character u'plus' (36)
IO - inputCore.InputManager.executeGesture (15:13:41.509):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:41.545):
Speaking character u'space' (36)
IO - inputCore.InputManager.executeGesture (15:13:41.943):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:41.983):
Speaking character u'B' (40)
IO - inputCore.InputManager.executeGesture (15:13:42.377):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:42.424):
Speaking character u'8' (46)
IO - inputCore.InputManager.executeGesture (15:13:42.838):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:42.874):
Speaking character u'right paren' (36)
IO - inputCore.InputManager.executeGesture (15:13:43.319):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:43.645):
Speaking character u'star' (326)
IO - inputCore.InputManager.executeGesture (15:13:44.062):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:44.107):
Speaking character u'A' (45)
IO - inputCore.InputManager.executeGesture (15:13:44.503):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:44.546):
Speaking character u'2' (43)
IO - inputCore.InputManager.executeGesture (15:13:44.967):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:45.019):
Speaking character u'dash' (52)
IO - inputCore.InputManager.executeGesture (15:13:45.335):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:45.374):
Speaking character u'D' (39)
IO - inputCore.InputManager.executeGesture (15:13:45.805):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:45.845):
Speaking character u'7' (40)
IO - inputCore.InputManager.executeGesture (15:13:46.239):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:46.279):
Speaking character u'star' (40)
IO - inputCore.InputManager.executeGesture (15:13:46.694):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:46.732):
Speaking character u'left paren' (38)
IO - inputCore.InputManager.executeGesture (15:13:47.142):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:47.474):
Speaking character u'left paren' (332)
IO - inputCore.InputManager.executeGesture (15:13:47.957):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:48.273):
Speaking character u'left paren' (316)
IO - inputCore.InputManager.executeGesture (15:13:48.701):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:49.045):
Speaking character u'left paren' (344)
IO - inputCore.InputManager.executeGesture (15:13:49.430):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:49.759):
Speaking character u'C' (329)
IO - inputCore.InputManager.executeGesture (15:13:50.142):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:50.187):
Speaking character u'2' (45)
IO - inputCore.InputManager.executeGesture (15:13:50.677):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:50.717):
Speaking character u'plus' (40)
IO - inputCore.InputManager.executeGesture (15:13:51.151):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:51.210):
Speaking character u'D' (59)
IO - inputCore.InputManager.executeGesture (15:13:51.650):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:51.707):
Speaking character u'3' (57)
IO - inputCore.InputManager.executeGesture (15:13:52.151):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:52.184):
Speaking character u'right paren' (33)
IO - inputCore.InputManager.executeGesture (15:13:52.678):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:53.009):
Speaking character u'plus' (331)
IO - inputCore.InputManager.executeGesture (15:13:53.479):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:53.513):
Speaking character u'B' (34)
IO - inputCore.InputManager.executeGesture (15:13:53.936):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:53.982):
Speaking character u'1' (46)
IO - inputCore.InputManager.executeGesture (15:13:54.401):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:54.453):
Speaking character u'right paren' (52)
IO - inputCore.InputManager.executeGesture (15:13:54.994):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:55.321):
Speaking character u'plus' (327)
IO - inputCore.InputManager.executeGesture (15:13:55.588):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:55.624):
Speaking character u'B' (36)
IO - inputCore.InputManager.executeGesture (15:13:56.131):
Input: kb(desktop):rightArrow
IO - speech._speakSpellingGen (15:13:56.171):
Speaking character u'7' (40)

@Adriani90
Copy link
Collaborator

Note that this issue seems to only occur when "Allow editing directly in cells" is turned on. So we'll have to wait until the Problem in Excel 2016 / 365 is fixed and editing direcly in cells is working again with NVDA. Then a further testing should be done. In the meantime, testint with Excel 2010, there is no error or warning in the log when moving through the cell with left and right arrow. Still, NVDA says for example "blank" where there is a bracket or a Operator or so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants