microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
165.18k stars 29.62k forks source link

Cursor tracking is not working properly when magnifier is enabled #149166

Closed snufas closed 2 years ago

snufas commented 2 years ago

Issue Type: Bug

Issue description

There is an issue with cursor staying at the center of the view when using magnifier in VS code. Basically, the problem is that magnifier seems to lose the center of attention when using up and down arrows to scroll through the code. Same problem applies when using left and right keys on their own for reading a longer text.

When I use up and down arrow keys to read my code line by line, the cursor is no longer visible after reading few lines of code, is basically lost, and the magnifier view is focused towards the very end of the editor instead. Same issue applies if left and right keys on their own, by moving a cursor letter by letter, the focus seems not to be tracked properly, and after going through longer text I no longer see the cursor.

It works if I use CTRL + left and right keys for reading word by word, but for obvious reasons that cannot be applied using up and down arrows to read line by line.

All the settings are enabled for the following section in the magnification settings

Have Magnifier follow: Mouse pointer = Yes Keyboard focus = Yes Text cursor = Yes Narrator cursor = Yes

The only way I can get magnifier focus back on the cursor after it's lost, use CTRL + left or right arrow to get its focus back. Same fix applies for reading using left and right, or up-and-down arrows.

In summary, unless I use CTRL and arrow keys to navigate, the tracking does not work. I can't tell for how long this bug exists, I only recently started to use magnifier more, but as for sure for last month or 2...

In theory, you should be able to see your edit cursor at the center all the time when magnification is enabled.

To fully reproduce this issue

I suggest to open the same code using Notepad and VS code . Then, zoom in good bit, and then go through the code line by line by using up-and-down keys in both VS code and Notepad. Then, try to read longer line letter by letter using just left and right keys alone.

Basically, Notepad works just fine as it should, whereas VS code has some issues as described above. Those suggestions above should definitely explain the behavioral differences between Notepad and VS code for sure.

And of course, I can't finish my issue reporting without thanking VS code devs who made the most accessible editor for blind and visually impaired users like myself...

So thanks guys and girls, you're doing amazing work without a doubt...

VS Code version: Code 1.67.0 (57fd6d0195bb9b9d1b49f6da5db789060795de47, 2022-05-04T12:06:02.889Z) OS version: Windows_NT x64 10.0.19044 Restricted Mode: No

System Info |Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz (12 x 3498)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_renderer: enabled_on
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled| |Load (avg)|undefined| |Memory (System)|31.91GB (20.34GB free)| |Process Argv|D:\\python\\exirsizes\\udemy exirsizes\\19.py --crash-reporter-id a52d657b-e892-4710-abf1-709e17d685f7| |Screen Reader|yes| |VM|40%|
Extensions (32) Extension|Author (truncated)|Version ---|---|--- spellright|ban|3.0.64 askjarvis-vscode|Bha|2.0.2 path-intellisense|chr|2.8.0 epub-reader|cwe|1.0.0 jshint|dba|0.11.0 docs-markdown|doc|0.2.110 gitlens|eam|12.0.6 prettier-vscode|esb|9.5.0 vscode-firefox-debug|fir|2.9.6 copilot|Git|1.19.5865 copilot-labs|Git|0.1.122 pinescript|Jey|3.0.1 vscode-docker|ms-|1.22.0 python|ms-|2022.6.0 vscode-pylance|ms-|2022.4.3 jupyter|ms-|2022.4.1011282140 jupyter-keymap|ms-|1.0.0 jupyter-renderers|ms-|1.0.6 remote-containers|ms-|0.234.0 remote-wsl|ms-|0.66.2 vsliveshare|ms-|1.0.5561 text-power-tools|qcz|1.32.0 java|red|1.6.0 multi-command|ryu|1.5.1 sourcery|sou|0.11.4 go-to-method|tri|0.2.0 vscodeintellicode|Vis|1.2.20 vscode-java-debug|vsc|0.40.1 vscode-java-dependency|vsc|0.19.1 vscode-java-pack|vsc|0.22.4 vscode-java-test|vsc|0.35.0 vscode-maven|vsc|0.35.1 (3 theme extensions excluded)
A/B Experiments ``` vsliv368:30146709 vsreu685:30147344 python383:30185418 vspor879:30202332 vspor708:30202333 vspor363:30204092 vswsl492cf:30256860 pythonvspyl392:30443607 pythontb:30283811 pythonptprofiler:30281270 vshan820:30294714 vstes263:30335439 pythondataviewer:30285071 vscod805cf:30301675 pythonvspyt200:30340761 binariesv615:30325510 bridge0708:30335490 bridge0723:30353136 vsaa593cf:30376535 vsc1dst:30438360 pythonvs932:30410667 wslgetstarted:30449410 pythonvsnew555:30457759 vscscmwlcmt:30465135 cppdebugcf:30475217 vsclangdf:30486550 ```
snufas commented 2 years ago

@alexdima @isidorn Commenting to get your attention, for low vision users it is quite a deal breaker... Thanks

isidorn commented 2 years ago

@snufas thanks for filling this issue, however it is a duplicate of https://github.com/microsoft/vscode/issues/105558 As a workaround I suggest to set editor.accessibilityPageSize: 1 in your vscode settings.

@alexdima this is one of those issue that we should invest in the future. I could not get far when contacting the magnifier software people to try to figure out how the magnifier follow the native cursor and if we could "trick it".

snufas commented 2 years ago

@isidorn Thanks for the fix "editor.accessibilityPageSize":1

It works for using up and down arrows, but not letter by letter navigation. Has to be fixed really 🙌 So please look in to it...

isidorn commented 2 years ago

@snufas if you are not using a screen reader you might set editor.accessibilitySupport: off in the setting and it might also fix the horizontal movement.

snufas commented 2 years ago

@isidorn i do use a screen reader IN combination with magnifier. so can't turn off that setting. just checked with: narator saime issue...