XHTML’e Övgü – I
by İsmail KIRTILLI
Bu yazının taslağı geçen akşam Biolight‘la tablosuz tasarım, XHTML vs. üzerine konuşurken çıktı.
XHTML denince akla, tagların kapatılması, yada bazı tagların değiştirilip, yerlerine yenilerinin getirilmesi gelebilir. XHTML kesinlikle bundan çok daha fazlasını ifade ediyor.
Örneğin, içeriğinizi yeniden farklı amaçlar için kullanmayı düşünüyorsanız, XHTML bu konuda işinizi gerçekten de kolaylaştıracaktır. XML’den miras aldığı katı kurallar sayesinde XHTML farklı erişim araçları için normal HTML’ye göre, işlemesi ve gösterimi daha kolay bir yapı sunuyor. Bugün XHTML’e geçerek, browser uyumluluğu sorunları ile karşılaşmadan XML’in pek çok avantajından yararlanabilirsiniz.
Bu üzerinde uzun uzun yazılabilecek bir konu, ama özellikle önemli olduğuna inandığım birkaç nokta hakkında yazacağım.
XHTML’in getirdiği yeniliklerden birisi, <;table>tagının kullanımı konusunda. Şurada da bashedildiği gibi, W3, “site layoutları için <;table> kullanmayın.” diyor. Ama tabular data için table kullanabilirsiniz. Örneğin bir ürün, bir fiyat listesini tablo şeklinde vermek istiyorsunuz, bunun için tabii ki kullanılabilir. <;table> tagı zaten bunun için.
XHTML ile gelen diğer bir değişiklik te, HTML taglarından semantik olmayanlarının semantik olanlarla değiştirilmesi. Örnek olarak, <;em> ve <;strong> taglarını alalım. Hem bu pek çok kişinin “<;b> ve <;i>’nin nesi vardı” sözüne bir açıklama olur.
<;b> ve <;i> stilsel, görünümle ilgili anlamlar içeren taglar. Birisi “italik” (yazıyı yana yatırma) diğeri de “bold” (yaızyı kalınlaştırma) için kullanılıyor. Diğer yandan, W3′ün XHTML ile bunların yerini almasını planladığı taglar, <;em> “emphasize” (önemli, vurgula), <;strong> “strongly empazise” (çok önemli, şiddetle vurgula) anlamına geliyor. XHTML’de, örneğin <;b> tagının CSS ile tanımlayabileceğiniz font-weight: bold‘dan hiçbir farkı yok. Oysa <;strong>‘un bu içerik içersinde semantik bir rolü var.
İleriye dönük uyumluluk bağlamında ise, ileride daha da yaygınlaması beklenen, yada şuan piyasadaki mevcut farklı “user agent”lar düşünüldüğünde, örneğin sesli bir broswerdan <;i>’yi yada <;b>’yi anlamasını bekleyemeziniz. Ama farklı erişim araçları için semantik taglar belirli bir anlam ifade eder. Örneğimizdeki tagları ele alırsak, sesli erişim sağlayan bir araç için, <;em>’de ses biraz değişebilir, <;strong>’da vurgu daha da artar. (Bunların özellikle engelli kişiler için ne derece önemli olduğundan hiç bahsetmiyorum.)
Diğer yandan XHTML, “valid” bir XML belgesi olarak, daha yapısal bir dil olma yönünde. Bu <;h> tagının kullanıyla ilgili gelişmelerde açıkça görülüyor. Örneğin, XHTML 1 specslerinde <;h>‘nin büyükten küçüğe doğru bir dizilim içersinde kullanılması öneriliyor. Buna göre, bir sayfada sadece bir <;h1> olabilir, onun altında <;h2> olur, onun altında <;h3> vs.
Örneğin;
<;h1>İlkokul zamanları<;/h1> içerik <;h2>Kızlar<;/h2> içerik <;h3>ilk aşkım<;/h3> içerik <;h3>ilk hayal kırıklığım<;/h3> içerik <;h3>ilk aldatılmama<;/h3> (he he, hiç te iyiye gitmiyor) içerik <;h2>öğretmenler<;/h2> içerik ..
gibi.
Nitekim XHTML 2 Working Public Draft‘ta da h için “level” etiketi eklemişler. Buna göre XHTML 2 ile birlikte (eğer bu taslak değişmezse) h tagı <h level="1">, <h level="2"> gibi kullanılabilicek.
Ayrıca, yine aynı kriterlere göre, font size‘ı “3″ ve yazıyı “bold” yapmak, bir metni W3‘ün anladığı anlamda başlık yapmıyor.
Tagların kapatılmaları XML ile ilgili, XHTML’in valid bir XML dokümanı olabilmesi için XML’den miras aldığı özelliklerden biri. XML için ayrı bir yazı yazıldığında, tagları kapatmanın XML için önemini de anlatırım.