BrowseModeDocumentTextInfo.getControlFieldSpeech: Report the name of groupings (such as fieldsets) for quicknav and focus jumps, similar to how landmark labels are reported. (#7435)
* BrowseModeDocumentTextInfo.getControlFieldSpeech: Report the name of groupings (such as fieldsets) for quicknav and focus jumps, similar to how landmark labels are reported.
* * speech.speakTextInfo: take an onlyCache keyword argument, set to False by default. If true, then speakTextInfo will process/cache controlFields and indenting info etc, but not actually speak anything. This is needed to allow browseMode to update its speech cache when moving around in focus mode, so that the next browseMode speech has the latest controlFields.
* BrowseMode: Ensure that browseMode's textInfo speech cache is updated even when moving around in focus mode, so that when switching back to browse mode, NVDA does not inappropriately announce entering/exiting controlFields from before focus mode.
* BrowseMode: don't speak new focus ancestors via focusEntered event when speaking focus in browseMode straight after being in focus mode.
* Address review actions: just use controlTypes.REASON_ONLYCACHE with speech.speakTextInfo rather than requiring a new argument. Also comment why BrowseModeDocumentTreeInterceptor.event_focusEntered drops all events.