fix(stammbaum): state-aware aria-label on family-member toggle — WCAG accessible name
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -965,6 +965,8 @@
|
|||||||
"relation_year_to": "bis {year}",
|
"relation_year_to": "bis {year}",
|
||||||
"relation_year_error_bis_before_von": "Bis-Jahr darf nicht vor Von-Jahr liegen.",
|
"relation_year_error_bis_before_von": "Bis-Jahr darf nicht vor Von-Jahr liegen.",
|
||||||
"relation_label_family_member": "Als Familienmitglied",
|
"relation_label_family_member": "Als Familienmitglied",
|
||||||
|
"relation_toggle_add_to_tree": "Zum Stammbaum hinzufügen",
|
||||||
|
"relation_toggle_remove_from_tree": "Aus Stammbaum entfernen",
|
||||||
"relation_label_in_tree": "Erscheint im Stammbaum",
|
"relation_label_in_tree": "Erscheint im Stammbaum",
|
||||||
"relation_label_view_in_tree": "Ansehen →",
|
"relation_label_view_in_tree": "Ansehen →",
|
||||||
"relation_label_direct": "Direkte Beziehungen",
|
"relation_label_direct": "Direkte Beziehungen",
|
||||||
|
|||||||
@@ -965,6 +965,8 @@
|
|||||||
"relation_year_to": "until {year}",
|
"relation_year_to": "until {year}",
|
||||||
"relation_year_error_bis_before_von": "End year must not precede start year.",
|
"relation_year_error_bis_before_von": "End year must not precede start year.",
|
||||||
"relation_label_family_member": "Family member",
|
"relation_label_family_member": "Family member",
|
||||||
|
"relation_toggle_add_to_tree": "Add to family tree",
|
||||||
|
"relation_toggle_remove_from_tree": "Remove from family tree",
|
||||||
"relation_label_in_tree": "Appears in the family tree",
|
"relation_label_in_tree": "Appears in the family tree",
|
||||||
"relation_label_view_in_tree": "View →",
|
"relation_label_view_in_tree": "View →",
|
||||||
"relation_label_direct": "Direct relationships",
|
"relation_label_direct": "Direct relationships",
|
||||||
|
|||||||
@@ -965,6 +965,8 @@
|
|||||||
"relation_year_to": "hasta {year}",
|
"relation_year_to": "hasta {year}",
|
||||||
"relation_year_error_bis_before_von": "El año final no puede ser anterior al año inicial.",
|
"relation_year_error_bis_before_von": "El año final no puede ser anterior al año inicial.",
|
||||||
"relation_label_family_member": "Miembro de la familia",
|
"relation_label_family_member": "Miembro de la familia",
|
||||||
|
"relation_toggle_add_to_tree": "Añadir al árbol genealógico",
|
||||||
|
"relation_toggle_remove_from_tree": "Quitar del árbol genealógico",
|
||||||
"relation_label_in_tree": "Aparece en el árbol genealógico",
|
"relation_label_in_tree": "Aparece en el árbol genealógico",
|
||||||
"relation_label_view_in_tree": "Ver →",
|
"relation_label_view_in_tree": "Ver →",
|
||||||
"relation_label_direct": "Relaciones directas",
|
"relation_label_direct": "Relaciones directas",
|
||||||
|
|||||||
@@ -76,6 +76,9 @@ function yearRange(rel: RelationshipDTO): string {
|
|||||||
type="submit"
|
type="submit"
|
||||||
role="switch"
|
role="switch"
|
||||||
aria-checked={familyMember}
|
aria-checked={familyMember}
|
||||||
|
aria-label={familyMember
|
||||||
|
? m.relation_toggle_remove_from_tree()
|
||||||
|
: m.relation_toggle_add_to_tree()}
|
||||||
class="inline-flex items-center gap-2 font-sans text-xs font-medium text-ink-2 transition-colors hover:text-ink"
|
class="inline-flex items-center gap-2 font-sans text-xs font-medium text-ink-2 transition-colors hover:text-ink"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
|
|||||||
@@ -37,4 +37,18 @@ describe('StammbaumCard', () => {
|
|||||||
render(StammbaumCard, { ...baseProps, relationshipError: 'Test Fehler' });
|
render(StammbaumCard, { ...baseProps, relationshipError: 'Test Fehler' });
|
||||||
await expect.element(page.getByText('Test Fehler')).toBeInTheDocument();
|
await expect.element(page.getByText('Test Fehler')).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('toggle aria-label says "Zum Stammbaum hinzufügen" when not yet a family member', async () => {
|
||||||
|
render(StammbaumCard, { ...baseProps, canWrite: true, familyMember: false });
|
||||||
|
await expect
|
||||||
|
.element(page.getByRole('switch', { name: 'Zum Stammbaum hinzufügen' }))
|
||||||
|
.toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('toggle aria-label says "Aus Stammbaum entfernen" when already a family member', async () => {
|
||||||
|
render(StammbaumCard, { ...baseProps, canWrite: true, familyMember: true });
|
||||||
|
await expect
|
||||||
|
.element(page.getByRole('switch', { name: 'Aus Stammbaum entfernen' }))
|
||||||
|
.toBeInTheDocument();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user