terminal/src
Carlos Zamora d08afc4e88
[A11y] Treat last character as 'end of buffer' (#11122)
## Summary of the Pull Request
Updates our `UiaTextRange` to no longer treat the end of the buffer as the "document end". Instead, we consider the "document end" to be the line beneath the cursor or last legible character (whichever is further down). In the event where the last legible character is on the last line of the buffer, we use the "end exclusive" position (left-most point on a line one past the end of the buffer). 

When movement of any kind occurs, we clamp each endpoint to the document end. Since the document end is an actual spot in the buffer (most of the time), this should improve stability because we shouldn't be pointing out-of-bounds anymore.

The biggest benefit is that this significantly improves the performance of word navigation because screen readers no longer have to take into account the whitespace following the end of the prompt.

Word navigation tests were added to the `TestTableWriter` (see #10886). 24 of the 85 tests were failing, however, they don't seem to interact with the document end, so I've marked them as skip and will fix them in a follow-up. This PR is large enough as-is, so I'm hoping I can take time in the follow-up to clean some things on the side (aka `preventBoundary` and `allowBottomExclusive` being used interchangeably).

## References
#7000 - Epic
Closes #6986 
Closes #10925

## Validation Steps Performed
- [X] Tests pass
- [X] @codeofdusk has been personally testing this build (and others)
2021-09-16 20:44:29 +00:00
..
api-ms-win-core-synch-l1-2-0 Introduce a api-ms-win-core-synch-l1-2-0 shim for Windows 7 (#10559) 2021-07-07 16:48:28 +00:00
buffer [A11y] Treat last character as 'end of buffer' (#11122) 2021-09-16 20:44:29 +00:00
cascadia Allow reordering tabs when UAC is disabled (#11221) 2021-09-16 17:13:10 +00:00
dep Move all wildcards into targets or expand them (#6406) 2020-06-08 14:01:47 -07:00
host Implement and action for manually clearing the Terminal (and conpty) buffer (#10906) 2021-09-02 14:59:42 +00:00
inc Implement and action for manually clearing the Terminal (and conpty) buffer (#10906) 2021-09-02 14:59:42 +00:00
interactivity [A11y] Treat last character as 'end of buffer' (#11122) 2021-09-16 20:44:29 +00:00
internal Implement Default Terminal (#7489) 2021-03-26 17:09:49 -05:00
propsheet Merged PR 6176782: [Git2Git] Get rid of dead build macros/#defines FE_IME, W32_SB, etc. 2021-06-21 10:50:52 -07:00
propslib Merged PR 6176782: [Git2Git] Get rid of dead build macros/#defines FE_IME, W32_SB, etc. 2021-06-21 10:50:52 -07:00
renderer Fix setting wght axis font bugs (#10863) 2021-08-25 01:19:40 +00:00
server Release unneeded memory more eagerly from conhost (#10738) 2021-07-21 05:59:57 +00:00
staging Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
terminal Add basic support for the DECRQSS settings query (#11152) 2021-09-08 23:26:44 +00:00
testlist Reflect testlist change from OS 2021-03-29 15:24:43 -05:00
til Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
tools Remove time and sys (#11100) 2021-09-01 21:30:39 +00:00
tsf Merged PR 6176782: [Git2Git] Get rid of dead build macros/#defines FE_IME, W32_SB, etc. 2021-06-21 10:50:52 -07:00
types [A11y] Treat last character as 'end of buffer' (#11122) 2021-09-16 20:44:29 +00:00
winconpty Implement and action for manually clearing the Terminal (and conpty) buffer (#10906) 2021-09-02 14:59:42 +00:00
common.build.post.props Add support for branch- and branding-based feature flagging (#10361) 2021-06-10 23:09:52 +00:00
common.build.pre.props Enable incremental linking for debug builds (#10342) 2021-06-04 23:52:49 +00:00
common.build.tests.props Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
common.pgo.compile.props Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
common.pgo.runtime.props Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
ConsolePerf.regions.xml
ConsolePerf.wprp Set keyword flags on all tracelog events (#10098) 2021-05-14 23:14:26 +00:00
cppwinrt.build.post.props Upgrade to C++/WinRT 2.0.210825.3 (#11188) 2021-09-10 21:33:13 +00:00
cppwinrt.build.pre.props Upgrade to C++/WinRT 2.0.210825.3 (#11188) 2021-09-10 21:33:13 +00:00
dirs Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
features.xml Replace TrayIcon with NotificationIcon (#11219) 2021-09-14 16:12:40 +00:00
project.inc Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
project.unittest.inc Merged PR 4915530: Reflect OS Build fixes on top of 58f5d7c7 2020-07-13 23:00:53 +00:00
StaticAnalysis.ruleset Fix SA for Visual Studio 16.8 (#8551) 2020-12-11 05:04:30 +00:00
Terminal.wprp Set keyword flags on all tracelog events (#10098) 2021-05-14 23:14:26 +00:00
unit.tests.x64.runsettings
unit.tests.x86.runsettings
wap-common.build.post.props
wap-common.build.pre.props Fix compilation with VS16.10 and later (#10208) 2021-05-26 20:11:38 +00:00