🚀 HTML vs. XHTML: Web Standartlarının Evrimi ve Katı Kurallar
HTML'in esnek dünyasından XHTML'in XML tabanlı katı disiplinine teknik bir yolculuk. Modern webin neden HTML5'te karar kıldığını keşfediyoruz.
Selamlar, bugün webin 'disiplinli' dönemlerine, yani XHTML'e ve onun HTML ile olan bitmek bilmeyen çekişmesine bakacağız. Forumlarda bazen 'Neden etiketleri kapatıyoruz ki, tarayıcı zaten anlıyor?' diyen genç arkadaşlar görüyorum. İşte bu sorunun cevabı tam olarak XHTML'in doğuşunda yatıyor.
HTML vs. XHTML: Temel Farklar
HTML (HyperText Markup Language) daha esnek ve hata payını tolere eden bir yapıdayken, XHTML (Extensible HyperText Markup Language) aslında HTML'in XML kurallarına göre yeniden düzenlenmiş halidir. XML, bilgisayarların veriyi hatasız okuması için çok katı kurallar koyar. XHTML bu katılığı web sayfalarına getirmeye çalıştı.
İşte XHTML'in olmazsa olmaz 4 kuralı:
- Etiket Kapatma Zorunluluğu: HTML'de
<br>yazıp geçebilirsiniz ama XHTML'de bu KESİNLİKLE<br />veya<br></br>olmalıdır. - Küçük Harf Duyarlılığı: HTML'de
<DIV>yazsanız çalışır, ama XHTML dünyasında tüm etiketler ve öznitelikler (attributes) küçük harf olmak zorundadır (<div>). - Hiyerarşik Düzen (Nesting): Etiketler açılış sırasına göre ters sırayla kapatılmalıdır.
<b><i>Metin</b></i>kullanımı XHTML'de ölümcül bir hatadır. - Öznitelik Değerleri:
checkedveyadisabledgibi boolean değerler XHTML'de tek başına yazılamaz; mutlakachecked="checked"şeklinde tırnak içinde tanımlanmalıdır.
Teknik Not: Bu katı hiyerarşi kuralı bana hep Godot Engine'deki Scene Tree yapısını hatırlatır. Orada da bir Node'u yanlış bir parent altına koyarsanız veya hiyerarşiyi bozarsanız tüm sahne mantığınız altüst olur. Temiz kod, sadece okunabilirlik için değil, sistemin tutarlılığı için de hayati önem taşır.
Neden HTML5 Kazandı?
XHTML'in en büyük sorunu 'Fatal Error' (Ölümcül Hata) mekanizmasıydı. Eğer sayfanızda tek bir XML kuralı hatası varsa (örneğin bir </div> unutulmuşsa), tarayıcı tüm sayfayı render etmeyi durdurup beyaz bir ekranda hata veriyordu. Bu durum, webin esnek ve kullanıcı dostu doğasına aykırıydı.
HTML5, XHTML'in getirdiği 'temiz kod' disiplinini bir standart olarak önerdi ama tarayıcıları bu kadar sert olmaya zorlamadı. Biz de projelerimizde (özellikle binlerce satır DOM manipülasyonu yaptığımız büyük çaplı işlerde) XHTML disipliniyle kod yazıp HTML5'in sunduğu modern API'ları kullanmayı tercih ediyoruz.
Kodunuz ne kadar katı (strict) olursa, hata ayıklamanız o kadar kolaylaşır.