From f0ae8c0be208f202eebbb58f0dd452f9de9848fe Mon Sep 17 00:00:00 2001 From: root Date: Thu, 1 Oct 2026 10:42:27 +0000 Subject: [PATCH] Kontaktformular: Datenschutzhinweis unter dem Senden-Button MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Wir verwenden Ihre Angaben nur, um Ihre Anfrage zu beantworten. Mehr dazu in unserer Datenschutzerklärung." als kleiner, gedämpfter Text mit Link auf https://project.webklar.com/datenschutz.html (gleiches Ziel wie im Footer). Textfarben sind die Theme-Token (muted-foreground / foreground), in Hell und Dunkel über 4,5:1. Co-Authored-By: Claude Sonnet 5.5 --- src/pages/Contact.tsx | 11 +++++++++++ src/test/sofort-paket.test.tsx | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/pages/Contact.tsx b/src/pages/Contact.tsx index 37f60ca..b05a1a2 100644 --- a/src/pages/Contact.tsx +++ b/src/pages/Contact.tsx @@ -179,6 +179,17 @@ const Contact = () => { )} + +

+ Wir verwenden Ihre Angaben nur, um Ihre Anfrage zu beantworten. Mehr dazu in unserer{" "} + + Datenschutzerklärung + + . +

{/* Contact Info */} diff --git a/src/test/sofort-paket.test.tsx b/src/test/sofort-paket.test.tsx index 09c6c22..08e71de 100644 --- a/src/test/sofort-paket.test.tsx +++ b/src/test/sofort-paket.test.tsx @@ -366,3 +366,25 @@ describe("C4 Schreibweise WEBklar", () => { }, ); }); + +describe("C2 Datenschutzhinweis am Kontaktformular", () => { + const HINWEIS = + "Wir verwenden Ihre Angaben nur, um Ihre Anfrage zu beantworten. Mehr dazu in unserer Datenschutzerklärung."; + + it("steht unter dem Senden-Button und verlinkt die Datenschutzerklärung", () => { + seite("/kontakt"); + const senden = screen.getByRole("button", { name: /Nachricht senden/ }); + const formular = senden.closest("form") as HTMLFormElement; + const hinweis = within(formular).getByText((_, el) => el?.tagName === "P" && el.textContent === HINWEIS); + expect(senden.compareDocumentPosition(hinweis) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy(); + expect(within(hinweis).getByRole("link", { name: "Datenschutzerklärung" })).toHaveAttribute("href", DATENSCHUTZ); + }); + + it("ist kleiner, gedämpfter Text mit gut lesbarem Link (Farb-Token siehe C5)", () => { + seite("/kontakt"); + const hinweis = screen.getByRole("link", { name: "Datenschutzerklärung" }).closest("p") as HTMLElement; + expect(hinweis).toHaveClass("text-muted-foreground"); + expect(hinweis.className).toMatch(/text-(xs|sm)/); + expect(screen.getByRole("link", { name: "Datenschutzerklärung" })).toHaveClass("text-foreground", "underline"); + }); +});