bug(aria/combobox): `filterMode="auto-select"` returns old value
Mantenedores costumam responder em até 1 dia
@ok7sai já está trabalhando nisso.
Desde 1/4/2026.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
No response
Description
angular/aria combobox with multi false, readonly false and filterMode="auto-select" returns old selected value.
If now we have AAA as selected but then we select BBB and hit Enter key -> we mustn't see AAA. Because we select another (BBB) value and approve it by Enter.
values():
<div>{{ listbox()?.values() | json }}</div>
<div ngCombobox [filterMode]="filterMode()" [readonly]="false">
<div #origin class="autocomplete">
<span
class="search-icon material-symbols-outlined"
translate="no"
aria-hidden="true"
>search</span
>
<input
aria-label="Label dropdown"
placeholder="Select a country"
[(ngModel)]="query"
ngComboboxInput
/>
</div>
<ng-template ngComboboxPopupContainer>
<ng-template
[cdkConnectedOverlay]="{origin, usePopover: 'inline', matchWidth: true}"
[cdkConnectedOverlayOpen]="true"
>
<div class="popup">
@if (countries().length === 0) {
<div class="no-results">No results found</div>
}
<div ngListbox [multi]="false">
@for (country of countries(); track country) {
<div ngOption [value]="country" [label]="country">
<span class="option-label">{{ country }}</span>
<span
class="check-icon material-symbols-outlined"
translate="no"
aria-hidden="true"
>check</span
>
</div>
}
</div>
</div>
</ng-template>
</ng-template>
</div>
import {
Combobox,
ComboboxInput,
ComboboxPopupContainer,
} from '@angular/aria/combobox';
import { Listbox, Option } from '@angular/aria/listbox';
import { OverlayModule } from '@angular/cdk/overlay';
import { CommonModule } from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
computed,
input,
signal,
viewChild,
viewChildren,
} from '@angular/core';
import { FormsModule } from '@angular/forms';
const ALL_COUNTRIES = ['AAA', 'BBB', 'CCC', 'DDD'];
@Component({
selector: 'CustomCombobox',
templateUrl: 'combobox.html',
styleUrl: './combobox.scss',
imports: [
CommonModule,
Combobox,
ComboboxInput,
ComboboxPopupContainer,
Listbox,
Option,
OverlayModule,
FormsModule,
],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CustomCombobox {
public filterMode = input.required<'manual' | 'auto-select' | 'highlight'>();
/** The combobox listbox popup. */
listbox = viewChild<Listbox<string>>(Listbox);
/** The options available in the listbox. */
options = viewChildren<Option<string>>(Option);
/** A reference to the ng aria combobox. */
combobox = viewChild<Combobox<string>>(Combobox);
/** The query string used to filter the list of countries. */
query = signal('');
/** The list of countries filtered by the query. */
countries = computed(() =>
ALL_COUNTRIES.filter((country) =>
country.toLowerCase().startsWith(this.query().toLowerCase())
)
);
constructor() {
}
}
Reproduction
StackBlitz link: https://stackblitz.com/edit/stackblitz-starters-gopytywj?file=src%2Fmain.ts,src%2Fcombobox%2Fcombobox.html
Steps to reproduce:
- type aaa -> values() are ["AAA"]
- remove input value
- Now: empty input and values(). Use arrow up/down keys to select BBB, CCC or DDD. Not AAA
- hit Enter key
- But values() are ["AAA"] again
Expected Behavior
We select BBB and hit Enter key -> we must see BBB, not AAA.
Actual Behavior
We select BBB, CCC, DDD and hit Enter key -> we see previous value: AAA
Environment
- Angular: 21.0.3 and later
- angular/aria: 21.0.2 - 21.2.0-next.0
- Browser(s):
- Operating System (e.g. Windows, macOS, Ubuntu):
- Linguagem predominante
- TypeScript
- Estrelas
- 25k
- Forks
- 6.8k
- Merge médio
- 1d 5h
- PRs com merge (30d)
- 67
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de angular/components
-
area: aria/combobox gemini-triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
angular/components#33973 ·
Mantenedores costumam responder em até 1 dia
-
bug(aria/combobox): ComboboxPopup throws NG0950 when destroyed before its first change detectionAbertaarea: aria/combobox gemini-triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
angular/components#33972 ·
Mantenedores costumam responder em até 1 dia
-
bug(material/sort): hover hint arrow on an unsorted header shows the active sort direction, not the resulting direction after click.Talvez já em andamento @lekhmanrus assumiu há 12 dias. Abertaarea: material/sort P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
angular/components#33933 ·
Mantenedores costumam responder em até 1 dia
-
bug(mat-date-picker): month shown twice in date pickerTalvez já em andamento @PreethiPantangi assumiu há 29 dias. Abertaarea: material/datepicker P4
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
angular/components#33763 · 2 comentários · 3 reações ·
Mantenedores costumam responder em até 1 dia
-
Bug in table.scss footer cell height: unset instead of footer row height unsetTalvez já em andamento @minwookshin assumiu há 16 dias. Abertaarea: material/table P4
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
angular/components#33709 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de angular/components
Issues semelhantes
-
area:workflow bug ready-for-human
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
fil-donadoni/tolaria#6108 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
apache/rocketmq-dashboard#7234 ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
vitest-dev/vitest#11656 ·
Mantenedores costumam responder em até 1 dia
-
e2e-failure ready-to-code
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
redhat-developer/rhdh-plugin-export-overlays#4460 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
ehmpathy/rhachet-roles-bhrain#655 ·
Mantenedores costumam responder em até 1 dia