NCA Social Media
Aktualisiert:
Autor:
Roland Golla
Grauer Stapel aus drei Schichten mit wirren Kabeln, davor der Schriftzug Symfony Frontend Grauer Widget Kasten zerfällt, daneben rastet ein grüner Baustein mit Aufschrift Dialog ein Grüne Fläche mit Häkchen und Fokusrahmen, davor kleine Figuren und eine Rakete

Weniger JavaScript, mehr Browser: Symfony Frontend Refactoring

In vielen Symfony Projekten liegen mehrere Frontend Welten übereinander. Unten ein paar Zeilen jQuery aus alten Zeiten. Darüber Alpine für die Navigation. Daneben ein Stimulus Controller, den mal jemand angefangen hat.

Wir räumen das auf. Was der Browser heute selbst kann, macht der Browser. Was übrig bleibt, wird eine dünne Schicht Stimulus. Am Ende habt ihr weniger Code, weniger Abhängigkeiten und ein Frontend, das mit Tastatur und Screenreader sauber funktioniert.

Was drei Frontend Paradigmen wirklich kosten

Die Kosten stehen nirgends in einer Rechnung. Sie stehen in der Woche, die eine neue Entwicklerin braucht, weil sie drei Muster lernen muss statt einem. Sie stehen in dem Bug, der nur auftritt, wenn zwei Bibliotheken gleichzeitig auf dasselbe Element zugreifen. Und sie stehen in den Attributen, die euer HTML Validator nicht kennt und die deshalb pauschal weggefiltert werden. Genau dieser Filter versteckt irgendwann einen echten Fehler.

Der teuerste Posten ist meist unsichtbar. Ein selbstgebautes Menü Overlay sieht auf dem Bildschirm richtig aus, hält aber den Fokus nicht fest. Wer mit der Tastatur navigiert, landet hinter dem geöffneten Menü in Inhalten, die er nicht sieht. Das ist kein Schönheitsfehler, sondern ein Befund nach BFSG und den Regeln für barrierefreies Webdesign.

Der Browser hat diese Probleme längst gelöst. Dialoge, Aufklappbereiche und Overlays sind heute native HTML Elemente mit Fokusverwaltung, Escape Taste und korrekter Semantik ab Werk. Was Teams vor Jahren nachbauen mussten, ist heute eine Zeile Markup.

Wir holen euch dorthin. Der Ablauf ist bei uns immer gleich: kostenloses Kennenlernen, ehrliche Aufwandsschätzung, danach transparente Minuten Abrechnung. Keine Pakete, keine Lizenzen, keine Bindung an uns.

CYPRESS.IO Ambassador und IT Consultant für QA Engenieering und Qualität in PHP Projekten.

Erreichen Sie unsere PHP Consultant Spezialisten

Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.

Wie wir vorgehen

Wir fangen nicht mit einer Umschreibung an, sondern mit einer Bestandsaufnahme. Vier Phasen, und euer Team ist in jeder dabei.

1. Bestand aufnehmen
Wir schauen, welche Bibliotheken tatsächlich benutzt werden und wofür. Meist stellt sich heraus, dass eine ganze Abhängigkeit für zwei Funktionen im Projekt liegt. Parallel prüfen wir, welche Warnungen euer HTML Validator gerade unterdrückt und was diese Filter mitverstecken.

2. Native Elemente einsetzen
Menü Overlays werden zu echten Dialog Elementen. Aufklappbereiche werden zu Details Elementen. Kleine Dropdowns bekommen die native Popover Funktion. Jedes Mal fällt der halbe Code weg, und Tastaturbedienung sowie Fokusverwaltung kommen gratis dazu.

3. Die dünne Schicht bauen
Was übrig bleibt, ist Verdrahtung, und dafür ist Stimulus aus dem Symfony UX Ökosystem gemacht. Ein Controller macht drei Dinge, nicht dreißig. Darstellung bleibt in CSS, Zustand bleibt im nativen Element.

4. Absichern
Ohne Netz kein Refactoring. Wir hängen die Ergebnisse in eure CI CD Pipeline mit Docker und Staging: End to End Tests mit Cypress über die wichtigen Wege, dazu automatisierte Accessibility Tests mit Axe und Cypress und ein HTML Validator, der ohne Ausnahmeregeln läuft.

Für eure Entwickler in einem Absatz: Alpine und jQuery raus, native dialog, details und Popover rein, Symfony UX Stimulus über die Twig Helper statt handgeschriebener Data Attribute, Werte über die Values API, sauberes disconnect für Scroll Lock und Timer, Darstellung über CSS und has Selektoren, Encore oder AssetMapper je nach Projektstand, Absicherung mit Cypress und Axe in GitLab CI oder GitHub Actions.

Aufsteigendes Säulendiagramm der vier Refactoring Phasen Analyse, Native, Stimulus, Tests. Inhalt steht textuell in der Tabelle darunter.

Die vier Phasen im Überblick

Phase Was passiert Ergebnis für euch
Analyse Bibliotheken, tatsächliche Nutzung und unterdrückte Validator Warnungen aufnehmen Klare Liste, was raus kann und was bleibt
Native Ersetzung Dialog, Details und Popover statt nachgebauter Widgets Weniger Code, Tastaturbedienung ab Werk
Stimulus Schicht Dünne Controller über Twig Helper, Darstellung in CSS Ein Muster im Projekt statt drei
Absicherung Cypress, Axe und HTML Validierung ohne Ausnahmen in der Pipeline Jede Änderung ist geprüft, bevor sie live geht

Native Elemente statt nachgebauter Widgets

Der wichtigste Satz in diesem Thema lautet: nicht nachbauen, was der Browser kann. Ein modaler Dialog liefert heute von sich aus die oberste Ebene ohne z-index Kämpfe, eine Fokusfalle, einen inerten Hintergrund, die Escape Taste und die Rückgabe des Fokus an den auslösenden Button. Das sind fünf Dinge, die in Eigenbauten fast immer fehlen.

Für kleine Overlays wie Sprachwahl oder Benutzermenü ist die Popover Funktion richtig. Für ein Menü, das den ganzen Bildschirm füllt, ist sie es nicht, denn ein Popover ist bewusst nicht modal. Der Hintergrund bleibt bedienbar und für Screenreader erreichbar. Diese Unterscheidung sauber zu treffen ist die halbe Arbeit.

Aufklappbare Bereiche in Navigationen und FAQ Listen brauchen überhaupt kein Skript. Details und Summary erledigen Zustand, Tastaturbedienung und Semantik allein und funktionieren auch dann, wenn JavaScript scheitert.

Wenn ihr grundsätzlicher über euren Frontend Ansatz nachdenkt, ordnen wir das mit ein. HTMX als Hypermedia Ansatz, TypeScript für mehr Typsicherheit oder Turbo aus dem UX Ökosystem sind je nach Projekt sinnvoll. Wir sagen euch ehrlich, wann sich der Wechsel lohnt und wann euer bestehender Stack völlig ausreicht.

Barrierefreiheit fällt dabei ab

Das ist der Teil, den viele Teams unterschätzen. Wer Eigenbau Widgets durch native Elemente ersetzt, erledigt einen großen Teil seiner Barrierefreiheit nebenbei. Fokusfalle, Fokusrückgabe, Tastaturbedienung und korrekte Rollen liefert der Browser mit. Man muss sie nur nicht kaputt machen.

Wir prüfen das nicht nur einmal, sondern verankern es. Die Tab Reihenfolge machen wir mit taba11y sichtbar, Lighthouse Audits und die Accessibility Werkzeuge in Firefox gehören bei uns zum normalen Arbeiten. Dazu kommt die saubere Überschriftenstruktur, die beim Umbau von Templates ohnehin auf dem Tisch liegt.

Automatisierte Tests finden nicht alles, aber sie finden Rückschritte. Deshalb laufen die Prüfungen bei uns in der Pipeline und nicht in einer einmaligen Auditdatei, die nach drei Monaten niemand mehr öffnet. Wenn ihr weiter denkt, findet ihr unser komplettes Angebot unter Accessibility Webdesign und Frontend.

Spec statt Bauchgefühl: KI gestützt umbauen

Frontend Refactoring ist ein gutes Feld für KI Werkzeuge, aber nur mit Vorgabe. Wer einem Coding Agent sagt, er soll Alpine durch Stimulus ersetzen, bekommt eine wortwörtliche Übersetzung zurück. Dieselben Lücken, andere Syntax. Der Agent kennt euer Ziel nicht, er kennt nur euren Auftrag.

Deshalb schreiben wir vorher eine Spezifikation. Jede Anforderung bekommt Szenarien: Der Fokus verlässt das geöffnete Menü nicht. Escape schließt. Der Fokus kehrt zum Button zurück. Der Hintergrund scrollt nicht mit. Erst danach läuft die Umsetzung, und zwar prüfbar gegen diese Punkte.

Das ist derselbe Ansatz, mit dem wir Teams im Vibe Coding Consulting begleiten. Werkzeuge wie Claude Code beschleunigen den Umbau erheblich, wenn Leitplanken stehen. Ohne Leitplanken beschleunigen sie den Weg in die nächste Altlast. Passend dazu sorgen einheitliche Symfony Coding Standards dafür, dass am Ende nicht drei Handschriften im Projekt liegen.

Warum NCA und was das für euch bedeutet

Bei uns sitzen keine Berater mit Folien. Roland Golla ist der Gründer von Never Code Alone in Duisburg. Sein Thema: Die KI schreibt den Code, er sorgt für die Qualität. Symfony, Sulu und Twig sind unser tägliches Arbeitsgerät, nicht ein Punkt auf einer Referenzliste.

Wir arbeiten im Pair Programming direkt in eurem Projekt. Ihr seht, warum ein Element ersetzt wird, nicht nur dass es ersetzt wurde. Nach dem Umbau kann euer Team die nächste Komponente allein angehen. Genau darum geht es.

Das Frontend ist selten das einzige Thema. Wenn im selben Projekt noch ein PHP Update ansteht, der Backend Code über PHP Refactoring aufgeräumt werden muss oder Rector PHP automatisiert nachzieht, machen wir das im selben Zug. Einen Überblick über unser gesamtes Angebot findet ihr im PHP Consulting, praktische Beispiele wie der Telegram Bot für Symfony Formulare zeigen, wie klein wir anfangen können.

Wer ohne Symfony unterwegs ist und dieselbe Baustelle in Astro, React oder Vue hat, findet die framework neutrale Variante unter JavaScript ablösen für Barrierefreiheit und Performance. Dort steht auch die vollständige Gegenüberstellung von Alpine und nativen Elementen.

Wer lieber im Workshop Format startet, findet das im NCA RuhrRefactoring Consulting. Nachschlagewerk zu allen Werkzeugen ist unser PHP Glossar, inklusive Übersicht über die PHP 8 Versionen im Vergleich.

Fragen zum Symfony Frontend Refactoring

Die Fragen, die uns Teams in den ersten Gesprächen stellen. Wenn eure nicht dabei ist, stellt sie uns direkt.

Was kostet ein Symfony Frontend Refactoring 2026?

Wir arbeiten ohne Festpreise und ohne Pakete. Am Anfang steht ein kostenloses Kennenlernen, in dem wir uns euer Projekt anschauen. Danach schätzen wir den Aufwand ehrlich ein und rechnen transparent nach Minuten ab. Ihr zahlt die Zeit, die wirklich gearbeitet wurde, und könnt jederzeit stoppen.

Wie lange dauert der Umbau 2026 im Schnitt?

Das hängt daran, wie viele eigene Widgets im Projekt liegen. Eine Navigation samt Aufklappbereichen ist oft an einem Tag erledigt. Ein gewachsenes Frontend mit vielen Sonderfällen braucht mehrere Etappen. Wir gehen komponentenweise vor, damit ihr nach jeder Etappe einen lauffähigen Stand habt.

Müssen wir dafür auf Turbo oder AssetMapper wechseln 2026?

Nein. Wir ändern nur, was einen klaren Nutzen bringt. Wenn euer Projekt mit Webpack Encore läuft und der Build funktioniert, bleibt Encore. Ein Wechsel auf AssetMapper oder die Einführung von Turbo sind eigene Entscheidungen, die wir getrennt mit euch bewerten.

Funktioniert das auch 2026 noch mit älteren Symfony Versionen?

Native HTML Elemente hängen nicht an eurer Symfony Version, sondern am Browser. Stimulus läuft ab Symfony 5 problemlos. Wenn eure Version so alt ist, dass sie keine Sicherheitsupdates mehr bekommt, sprechen wir das offen an und klären, ob ein Update sinnvoll vorgeschaltet wird.

Brauchen wir dafür 2026 vorhandene Tests?

Nein, im Gegenteil. Viele Teams kommen genau deshalb zu uns. Wenn noch keine End to End Tests existieren, bauen wir zuerst eine kleine Absicherung für die wichtigsten Wege auf. Danach ist der Umbau selbst deutlich entspannter, weil jede Änderung sofort geprüft wird.

Was passiert mit unseren bestehenden Alpine Komponenten?

Wir schauen sie einzeln an. Ein Teil verschwindet ersatzlos, weil ein natives Element dasselbe kann. Ein Teil wird zu einem kleinen Stimulus Controller. Nichts wird blind übersetzt, denn eine wörtliche Übersetzung würde bestehende Lücken bei Fokus und Tastaturbedienung einfach mitnehmen.

Wird die Seite dadurch schneller?

Meist ja, aber der Gewinn liegt selten nur in eingesparten Kilobyte. Wichtiger ist, dass weniger Skript zwischen Klick und Reaktion steht und dass der Browser Dinge übernimmt, die vorher nachgebaut wurden. Wir messen vorher und nachher, damit ihr belastbare Zahlen habt statt Behauptungen.

Können wir das nicht selbst mit einem KI Agent machen?

Teilweise. Coding Agents sind bei dieser Arbeit sehr stark, wenn das Ziel klar beschrieben ist. Ohne Vorgabe liefern sie meist eine wörtliche Übersetzung des alten Codes. Wir schreiben deshalb vorher eine prüfbare Spezifikation mit Szenarien und begleiten euer Team dabei, diesen Ablauf selbst zu beherrschen.

Was hat das mit dem BFSG zu tun?

Ein Overlay, das den Fokus nicht festhält, ist ein Barrierefreiheitsproblem. Wer mit der Tastatur oder einem Screenreader navigiert, gerät hinter das sichtbare Menü in verdeckte Inhalte. Native Elemente lösen das ab Werk. Deshalb ist dieser Umbau oft der günstigste Weg zu mehr Konformität.

Arbeitet ihr remote oder vor Ort?

Beides. Der größte Teil unserer Arbeit läuft remote in gemeinsamen Sessions, weil das für alle Beteiligten am unkompliziertesten ist. Vor Ort sind wir in Duisburg, im Ruhrgebiet und im gesamten DACH Raum unterwegs, etwa für Workshops mit dem ganzen Team.

Was passiert mit unserer HTML Validierung?

Viele Projekte filtern Validator Meldungen pauschal, weil Bibliotheken eigene Attribute mitbringen. Dieser Filter versteckt früher oder später auch echte Fehler. Nach dem Umbau braucht ihr ihn nicht mehr, und die Validierung kann ohne Ausnahmen in der Pipeline laufen.

Bleibt das Design unverändert?

Ja. Ein Frontend Refactoring ist kein Redesign. Aussehen, Abstände und Verhalten bleiben so, wie eure Nutzer sie kennen. Wenn beim Umbau Schwächen auffallen, sagen wir euch Bescheid, entscheiden aber tut ihr das getrennt vom technischen Umbau.

Wie geht es nach dem Projekt weiter?

Euer Team führt es fort. Wir hinterlassen ein Muster, das sich wiederholen lässt, dazu die Tests und die Prüfungen in der Pipeline. Wer punktuell weiter Unterstützung möchte, bucht uns für einzelne Sessions. Eine dauerhafte Bindung an uns gibt es nicht und ist auch nicht das Ziel.