KHTML
# KHTML

KHTML ist eine freie HTML-Rendering-Engine, die vom KDE-Projekt entwickelt wurde. Sie wird vorrangig in Webbrowsern wie Konqueror eingesetzt und diente als Grundlage für WebKit. KHTML ist in C++ geschrieben und unterliegt der GNU Lesser General Public License (LGPL). KHTML bestand als erste Rendering-Engine ab Version 3.5 den Acid2-Test, der für eine korrekte Darstellung sowohl höchste Standardkonformität als auch korrekten Umgang mit fehlerhaftem HTML- und CSS-Code erfordert.

## Unterstützte Techniken

KHTML unterstützt folgende Techniken:
* HTML 4.01
* CSS 1 und 2.1 (CSS-3-Selektoren)
* JavaScript (ECMA 262, siehe KJS)
* DOM
* bidirektionale Schriften (z. B. Hebräisch)
* nicht-standardisierte Erweiterungen des Internet Explorers von Microsoft
In die Praxis eingeführt wurde KHTML mit KDE Version 2.0.

## KHTML auf anderen Plattformen

Als freie Software kann KHTML auch von anderen Herstellern für eigene Browser eingesetzt werden.

### Webkit

Apple benutzt in seinem Webbrowser Safari die Layout-Engine WebKit, die aus WebCore, einer Abspaltung von KHTML (KDE 3.0.2), und JavaScriptCore, einer Abspaltung von KJS besteht. Nokia setzte einen WebCore-basierten Browser auf der dritten Generation seiner Symbian-Smartphones (Series 60) ein. Mehrere andere Projekte verwenden KHTML oder basieren auf KHTML. Siehe dazu iCab, OmniWeb und Shiira.

### Blink

Die von Google für den Webbrowser Chrome von WebKit abgespaltene Rendering Engine wird in zahlreichen weiteren Browsern genutzt, darunter neben Chromium z. B. auch Opera ab Version 15, Microsoft Edge (seit 2018), Vivaldi, SRWare Iron und Brave.

### Qt

Im Framework Qt wurde mit QtWebKit (seit Qt 4.4) Apples KHTML-Abspaltung und -Weiterentwicklung nach Qt portiert. Ebenso wurde Blink, eine Abspaltung von WebKit, als QtWebEngine (seit Qt 5.4) in Qt integriert. Damit können Programme, die in Qt geschrieben sind, auch die von KHTML abgeleiteten Rendering Engines nutzen. So ist u. a. im KDE-Browser Konqueror WebEngine (bis Qt 5.3 Webkit) als Alternative zu KHTML einstellbar.