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_error_bis_before_von": "Bis-Jahr darf nicht vor Von-Jahr liegen.",
|
||||
"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_view_in_tree": "Ansehen →",
|
||||
"relation_label_direct": "Direkte Beziehungen",
|
||||
|
||||
@@ -965,6 +965,8 @@
|
||||
"relation_year_to": "until {year}",
|
||||
"relation_year_error_bis_before_von": "End year must not precede start year.",
|
||||
"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_view_in_tree": "View →",
|
||||
"relation_label_direct": "Direct relationships",
|
||||
|
||||
@@ -965,6 +965,8 @@
|
||||
"relation_year_to": "hasta {year}",
|
||||
"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_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_view_in_tree": "Ver →",
|
||||
"relation_label_direct": "Relaciones directas",
|
||||
|
||||
@@ -76,6 +76,9 @@ function yearRange(rel: RelationshipDTO): string {
|
||||
type="submit"
|
||||
role="switch"
|
||||
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"
|
||||
>
|
||||
<span
|
||||
|
||||
@@ -37,4 +37,18 @@ describe('StammbaumCard', () => {
|
||||
render(StammbaumCard, { ...baseProps, relationshipError: 'Test Fehler' });
|
||||
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