Bu sayfada önemli bir konudan bahsedeceğiz. Bazen elinizdekini daha iyi hale getirmek için yaptığınız değişiklik -eğer neyi, neden değiştirdiğinizi tam olarak bilmiyorsanız-, sizi bulunduğunuz noktadan daha geri bir noktaya götürebilir.
Internet'te birkaç senedir XHTML ile işaretlenmiş sayfaları daha sık görmeye başladık. HTML neredeyse eski, artık geçersiz hale gelmiş bir dil olarak değerlendiriliyor. Bu iki dil arasındaki farkı, hangisini nerede, neden ve nasıl kullanmak gerektiğini başka bir sayfada ele alacağız.
Şimdi küçük bir test yapalım ve sayfanızı -eğer- XHTML ile kodladıysanız ne kazandınız, ne kaybettiniz görelim.
Lütfen XHTML sayfanızın kaynak kodunu açın ve head elemanının içindeki http-equiv="Content-Type" özelliğini gösteren meta elemanını bulun. Aradığımız satır şöyle birşey olmalı:
<meta http-equiv="Content-Type" content="...
Yukarıdaki satırda content özelliğinden sonra üç nokta var. Sizin kodunuzda ise bu noktaların yerinde bir değer yazıyor olmalı.
Ne demek istediğimizi biraz daha açıklayalım.
Sayfanızda, content özelliğine text/html yazdığınızda bu bütün tarayıcılara (Explorer, Firefox, Opera vb.) o sayfanın düz metin içerdiğini ve HTML kurallarına göre işlenmesi gerektiğini söyler.
Yani XHTML ile kodladığınız sayfa bir HTML sayfası gibi algılanır. Bu durumda XHTML sayfanızın hatalı/eksik kodlanmış bir HTML sayfasından hiçbir farkı yoktur.
Biliyorsunuz, tüm tarayıcılar hatalı HTML sayfalarını da doğru bir şekilde göstermeye çalışırlar. Örneğin herhangi bir etiketi yanlış yazdığınızda, bir doctype belirtmediğinizde veya <html> elemanını sayfada hiç kullanmadığınızda bile sayfayı işleyen tarayıcı bu -ve buna benzer- hataları düzeltmeye çalışır.
İşte text-html olarak sunulan bir XHTML sayfası da tarayıcıya hatalarla dolu bir HTML sayfası olarak görülecektir. Örneğin <img /> elemanındaki / işareti XHTML'de doğru -ve gerekli- olmasına rağmen HTML'de geçersizdir, ve tarayıcı sayfayı işlerken, hatanızı <img> olarak düzeltir.
Az önce değindiğimiz gibi sayfanızı application/xhtml+xml olarak sunduğunuzda http-equiv özellikli meta elemanının zaten sayfada olmaması gerekir.
Bunun yerine sayfanın medya tipi, sayfanızın bulunduğu sunucu tarafından bir HTTP header ile belirtilmelidir.
Web sunucuları, tarayıcılara gönderdiği tüm dosyalara (HTML/XHTML dosyaları, JPG dosyaları, ZIP dosyaları vb.), gönderilen dosya türü ile ilgili bilgi içeren bir -ya da daha fazla- HTTP header ekler. Bu bilgi, daha dosyanın içeriği okunmadan tarayıcıya ulaşır. Böylece dosyanın geri kalan bölümünün nasıl yorumlanacağı tarayıcı tarafından bilinir.
Örneğin eğer sunucunuzda PHP kullanıyorsanız, sayfanızın en başına
header('Content-Type: application/xhtml+xml;');
satırını yazarak XHTML sayfanızı application/xhtml+xml olarak tarayıcıya sunabilirsiniz. Böylece sayfanız tüm tarayıcılar tarafından, bir XHTML sayfası olarak ele alınacaktır.
Bu sayede artık gerçekten XHTML kullandığınızı söyleyebilirsiniz. Çünkü XHTML ile işaretlediğiniz sayfanızı artık tarayıcılar da XHTML olarak yorumlayacak. Peki ya tarayıcı XHTML'den anlamıyorsa?
Evet, Internet Explorer 7 de dahil olmak üzere hiçbir Explorer sürümü, XHTML'yi desteklemiyor. Explorer'ın application/xhtml+xml olarak sunulan XHTML dosyalarını açabilmesi için çeşitli yöntemler var (W3C'nin önerdiği xsl trick'i ya da registry hack'leri gibi), ama her durumda Explorer sayfayı text/html yani HTML sayfası olarak yorumluyor.
Internet Explorer application/xhtml+xml medya tipini desteklemediği sürece, XHTML sayfanızı her zaman, bozuk bir HTML dosyası olarak ele alacak ve ona göre yorumlayacaktır.
Bugün, Internet'teki binlerce site sayfalarını yazarken XHTML kullanıyor. Ama o sayfaları -text/html medya tipi ile- HTML olarak sundukları sürece tarayıcılar (ve bu siteleri kullanan kullanıcılar) onları bozuk HTML olarak okumaya devam edecek.
Son olarak, World Wide Web Consortium (W3C) sitesinden, bu sayfanın ana fikriyle ilgili bir cümle alalım.
...sending XHTML documents to browsers as text/html means that those browsers see the documents as HTML documents, not XHTML documents.
...XHTML belgelerini tarayıcılara text/html olarak göndermek, o tarayıcıların belgeleri XHTML belgeleri olarak değil, HTML belgeleri olarak görmesi demektir.
Belki de artık “XHTML kullanıyor muyum?” yerine “XHTML kullanmalı mıyım?” diye sormalısınız.
Web Tasarım - 30 Ağustos, 2008
İnteraktif tasarımın alfabesi sayılabilecek Fitts Yasası, bakış açınızı tamamen değiştirebilir. Bu küçük test, 10 soru ve cevapla, bu yasayı pratik tasarım süreçlerinde nasıl kullanabileceğinizi araştırıyor.
19 Eylül, 2008
Copyright © 2008 iDefter.com. iDefter'de yayınlanan içerik, izinsiz kullanılamaz. Kullanım Koşulları