Change:
Screen reader users like want to navigate between editor ranges that have comments. I think this makes sense. the recording I will share describes this in more detail.
I just realized that these already exist, and .
I respectfully think that we have miscommunication here. I am requesting a feature going to the next commented area. The commands that you are referring to are moving between commentable range, instead of commented area. The closest commands are alt+F9 () and alt+shift+F9 (). However, these commands directly and automatically opens the comment widget. I just want to jump to the next commented lines and manually open the applied comments manually if I need to review.
Ah, yes makes sense thanks for reminding me!

Discussion:
export const previousRange = nls.localize('previous', "- Go to Previous Commenting Range{0}.", `<keybinding:${CommentCommandId.PreviousRange}>`); export const nextCommentThread = nls.localize('nextCommentThreadKb', "- Go to Next Comment Thread{0}.", `<keybinding:${CommentCommandId.NextThread}>`); export const previousCommentThread = nls.localize('previousCommentThreadKb', "- Go to Previous Comment Thread{0}.", `<keybinding:${CommentCommandId.PreviousThread}>`); <ins> export const nextCommentedRange = nls.localize('nextCommentedRangeKb', "- Go to Next Commented Range{0}.", `<keybinding:${CommentCommandId.NextCommentedRange}>`); export const previousCommentedRange = nls.localize('previousCommentedRangeKb', "- Go to Previous Commented Range{0}.", `<keybinding:${CommentCommandId.PreviousCommentedRange}>`); </ins> export const addComment = nls.localize('addCommentNoKb', "- Add Comment on Current Selection{0}.", `<keybinding:${CommentCommandId.Add}>`); export const submitComment = nls.localize('submitComment', "- Submit Comment{0}.", `<keybinding:${CommentCommandId.Submit}>`); }

} } <del> public nextCommentThread(): void { this._findNearestCommentThread(); </del> <ins> public nextCommentThread(focusThread: boolean): void { this._findNearestCommentThread(focusThread); </ins> } <del> private _findNearestCommentThread(reverse?: boolean): void { </del> <ins> private _findNearestCommentThread(focusThread: boolean, reverse?: boolean): void { </ins> if (!this._commentWidgets.length || !this.editor?.hasModel()) { return; }

const nextWidget: ReviewZoneWidget | undefined = sortedWidgets[idx]; if (nextWidget !== undefined) { this.editor.setSelection(nextWidget.commentThread.range ?? new Range(1, 1, 1, 1)); <del> nextWidget.reveal(undefined, CommentWidgetFocus.Widget); </del> <ins> nextWidget.reveal(undefined, focusThread ? CommentWidgetFocus.Widget : CommentWidgetFocus.None); </ins> } } <del> public previousCommentThread(): void { this._findNearestCommentThread(true); </del> <ins> public previousCommentThread(focusThread: boolean): void { this._findNearestCommentThread(focusThread, true); </ins> } private _findNearestCommentingRange(reverse?: boolean): void {

if (!controller) { return Promise.resolve(); } <del> controller.nextCommentThread(); </del> <ins> controller.nextCommentThread(true); </ins> }, weight: KeybindingWeight.EditorContrib, primary: KeyMod.Alt | KeyCode.F9,

if (!controller) { return Promise.resolve(); } <del> controller.previousCommentThread(); </del> <ins> controller.previousCommentThread(true); </ins> }, weight: KeybindingWeight.EditorContrib, primary: KeyMod.Shift | KeyMod.Alt | KeyCode.F9 }); KeybindingsRegistry.registerCommandAndKeybindingRule({ <ins> id: CommentCommandId.NextCommentedRange, handler: async (accessor, args?: { range: IRange; fileComment: boolean }) => { const activeEditor = getActiveEditor(accessor); if (!activeEditor) { return Promise.resolve(); } const controller = CommentController.get(activeEditor); if (!controller) { return Promise.resolve(); } controller.nextCommentThread(false); }, weight: KeybindingWeight.EditorContrib, primary: KeyMod.Alt | KeyCode.F10 }); KeybindingsRegistry.registerCommandAndKeybindingRule({ id: CommentCommandId.PreviousCommentedRange, handler: async (accessor, args?: { range: IRange; fileComment: boolean }) => { const activeEditor = getActiveEditor(accessor); if (!activeEditor) { return Promise.resolve(); } const controller = CommentController.get(activeEditor); if (!controller) { return Promise.resolve(); } controller.previousCommentThread(false); }, weight: KeybindingWeight.EditorContrib, primary: KeyMod.Shift | KeyMod.Alt | KeyCode.F10 }); KeybindingsRegistry.registerCommandAndKeybindingRule({ </ins> id: CommentCommandId.NextRange, handler: async (accessor, args?: { range: IRange; fileComment: boolean }) => { const activeEditor = getActiveEditor(accessor);

when: CommentContextKeys.activeEditorHasCommentingRange }); <ins> MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command: { id: CommentCommandId.NextCommentedRange, title: nls.localize('comments.NextCommentedRange', "Go to Next Commented Range"), category: 'Comments', }, when: CommentContextKeys.activeEditorHasCommentingRange }); MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command: { id: CommentCommandId.PreviousCommentedRange, title: nls.localize('comments.PreviousCommentedRange', "Go to Previous Commented Range"), category: 'Comments', }, when: CommentContextKeys.activeEditorHasCommentingRange }); </ins> CommandsRegistry.registerCommand({ id: CommentCommandId.ToggleCommenting, handler: (accessor) => {

Add = 'workbench.action.addComment', NextThread = 'editor.action.nextCommentThreadAction', PreviousThread = 'editor.action.previousCommentThreadAction', <ins> NextCommentedRange = 'editor.action.nextCommentedRangeAction', PreviousCommentedRange = 'editor.action.previousCommentedRangeAction', </ins> NextRange = 'editor.action.nextCommentingRange', PreviousRange = 'editor.action.previousCommentingRange', ToggleCommenting = 'workbench.action.toggleCommenting',