# VoidElementsSelfClosingProcessor

## Überblick

Der `VoidElementsSelfClosingProcessor` stellt sicher, dass leere Elemente (Void Elements) korrekt als selbstschließende Tags formatiert sind.

## Funktionsweise

- Identifiziert HTML-Void-Elemente (Elemente ohne Endtag)
- Korrigiert ihre Formatierung gemäß HTML5-Standard
- Stellt sicher, dass selbstschließende Tags korrekt dargestellt werden

## Betroffe Elemente

Die folgenden Elemente sind HTML5-Void-Elemente und werden vom Prozessor behandelt:

- `area`
- `base`
- `br`
- `col`
- `embed`
- `hr`
- `img`
- `input`
- `link`
- `meta`
- `param`
- `source`
- `track`
- `wbr`

## Vorher / Nachher

**Korrektur für HTML5:**

```html
<!-- Falsch (XML-Stil) -->
<img src="bild.jpg" alt="Bild" />

<!-- Korrekt (HTML5) -->
<img src="bild.jpg" alt="Bild">
```

**Oder:**

```html
<!-- Falsch (fehlendes Attribut) -->
<input>

<!-- Korrekt (mit Attribut) -->
<input type="text">
```

## Implementierung

Der Prozessor durchsucht das DOM nach Void-Elementen und stellt sicher, dass sie gemäß HTML5-Standard formatiert sind. Er kann auch prüfen, ob erforderliche Attribute vorhanden sind.

## HTML5 vs. XML/XHTML

- In HTML5 haben Void-Elemente kein schließendes Tag und keinen abschließenden Schrägstrich
- In XML/XHTML müssen Void-Elemente selbstschließend sein (`<tag />`) 

Dieser Prozessor standardisiert auf HTML5-Format, es sei denn, er wird anders konfiguriert.

## Konfigurationsoptionen

- **outputMode**: Kann auf "html5" oder "xhtml" gesetzt werden, um das Ausgabeformat zu bestimmen
- **enforceRequiredAttributes**: Wenn aktiviert, werden Warnungen für fehlende erforderliche Attribute generiert

## Vorteile

- Konsistente HTML-Ausgabe
- Vermeidet potenzielle Rendering-Probleme in verschiedenen Browsern
- Verbessert die Gültigkeit des HTML-Codes

## Tipps

- Dieser Prozessor sollte vor Optimierungsprozessoren wie dem CommentStripProcessor ausgeführt werden
- In HTML5-Projekten sollten Void-Elemente ohne schließenden Schrägstrich verwendet werden
- In XML/XHTML-Projekten sollten Void-Elemente immer selbstschließend sein
