Change:
Currently focusing the terminal reads something like "Terminal 1", "Terminal 2". It should read "Terminal 1, bash", "Terminal 2, (custom title)", etc. Context:
Or simply the title you set... Maybe the title, then "Terminal 1" in brackets?
Or maybe go absolutely wild, and have it as a configurable string. Something like "i)", where i is the index.
I can look into fixing this issue if it is still open, although I do see it has been to the backlog.
please do , the backlog for us essentially means we want to do this eventually.
On it. Quick clarification, but what was meant by "custom title" in the issue description above? I guess more specifically, with , is the (custom) the user's choice? How will that terminal name be determined? (looking at the context linked above, it seems it should be what was set for the action) Additionally, before I delve into the source code, can you briefly clarify "focusing" on the textarea Can't seem to recreate that on the development version or released version.
by custom I mean when you rename a terminal via this command: ! The label is set here: You'll need a screen reader to verify whether it's read correctly but I expect the change to be on that line.
Not sure what the image says, but when you rename the terminal with the "Terminal: Rename" command. Thanks so much for dealing with it. Take care, Chris Norman
I anticipate changing this line: to this: Though prior to setting this attribute I anticipate I will need to add a check to see if the title was set or not, along with ensuring this attribute is updated on title changes (renamed instances). Although the latter should already be accounted for.
To get localization to work it will need to be , and yes good thinking we should have an if in there are 2 separate calls, one with and one without the title.
Will submit a PR shortly.
Where should I see this? When I focus the terminal, voiceover reads "Terminal 1, edit text, complentary" !
I'm also not getting what I'd expect from this issue. What's read: Terminal 2 edit blank Red dot where I clicked: ! What I'd expect that to read: "Terminal 2 powershell"
I'm going to take a shot at this for Grace Hopper's Open Source Day!
Here's a code poitner (not specific enough though)
I see that this issue hasn't been fully resolved as of now. I would like to try to fix it if it is still available to work on. As I am completely new to this project, I would appreciate some code pointers. With the pointers above I have already found out where the string "said by the narrator" is set. But could someone point me to the entry point for ? Thank you, looking forward to making my first contribution.
I found the entry point of and have resolved the issue. A pull request has been created at . If anyone is searching for the entry point, see
Thanks a lot for creating a PR!

Discussion:
throw new Error('xterm elements not set after open'); } <del> // Check if custom Terminal title exists and set same if (this._title.length > 0) { xterm.textarea.setAttribute('aria-label', nls.localize('terminalTextBoxAriaLabelNumberAndTitle', "Terminal {0}, {1}", this._id, this._title)); } else { xterm.textarea.setAttribute('aria-label', nls.localize('terminalTextBoxAriaLabel', "Terminal {0}", this._id)); } </del> <ins> this._setAriaLabel(xterm, this._id, this._title); </ins> xterm.textarea.addEventListener('focus', () => this._onFocus.fire(this)); xterm.attachCustomKeyEventHandler((event: KeyboardEvent): boolean => {

this._shellType = shellType; } <ins> private _setAriaLabel(xterm: XTermTerminal | undefined, terminalId: number, title: string | undefined): void { if (xterm) { if (title && title.length > 0) { xterm.textarea?.setAttribute('aria-label', nls.localize('terminalTextBoxAriaLabelNumberAndTitle', "Terminal {0}, {1}", terminalId, title)); } else { xterm.textarea?.setAttribute('aria-label', nls.localize('terminalTextBoxAriaLabel', "Terminal {0}", terminalId)); } } } </ins> public setTitle(title: string | undefined, eventSource: TitleEventSource): void { if (!title) { return;

const didTitleChange = title !== this._title; this._title = title; if (didTitleChange) { <ins> this._setAriaLabel(this._xterm, this._id, this._title); </ins> if (this._titleReadyComplete) { this._titleReadyComplete(title); this._titleReadyComplete = undefined;