W3C XHTML/Strict standartları ve uygun yeni pencere linki oluşturmak


Egonomik için yeni bir tema tasarlamayı düşünüyordum, bu düşüncemin altında kullanıcılardan gelen isteğin yanında (ki bu isteğin şimdilik yersiz olduğu kanaatine vardık) bir de şu anki temanın XHTML/Strict DTD (Document Type Defination) standartlarına uymuyor olması yatıyordu. Aslında bu standartlara şimdiye kadar çok fazla itibar göstermiyordum, gerçi Google’ın bile uygunluk testinden geçemediğini düşününce hala da pek önemsediğim söylenemez, ancak ne varki iyi bir tasarımcı olarak anılmak istiyorsanız çağa ayak uydurmanız ve oyunu kurallarına göre oynamanız şart.

Bu standartları belirleyen vatandaşlar iyi hoş bir çok güzellik yapmışlar ancak bazı konularda akıllarından tam olarak ne geçtiğini tahmin etmek zor. Ben özellikle sıklıkla ve severek kullandığımız target=”_blank” ifadesini kaldırmış olmalarına ifrit oldum. Bazı kaynaklara göre bu ifadenin tarayıcının ileri/geri fonksiyonlarını devre dışı bırakması kullanıcıyı zor durumda bırakıyormuş, haliyle standartlar arasında yer alması pek mantıklı değilmiş. Yani eğer kullanıcı o linki yeni bir pencerede açmak istiyorsa bunu kendi iradesiyle yapmalıymış. Evet bu aslında bir yere kadar doğru bir düşünce fakat hal vaziyet bu diye site sahibinin suçu ne? Yani tarayıcı ve internet kullanımına tam anlamıyla vakıf olmayan, “Tebrikler 100.000 TL Kazandınız!” türü reklamlara bile tıklayan ziyaretçiyi (anneler/babalar/dayılar), hiç hazzetmediği fakat yine de bağlantı vermek zorunda kaldığı siteye yönlendirirken (örn: Mynet) kaybedecek olması tartışılır bir durum değil mi? Hayır gidip popup açtıran kodlar için aynı yorumu yapsalar amenna ama bu olayın bana göre anlaşılabilir bir tarafı yok. Neticede ortada standartlara uygun sabit bir alternatif olmamasına rağmen siz dilediğiniz zaman javascript yardımıyla yeni bir pencere açtırabiliyor ve uygunluk testinden rahatlıkla geçebiliyorsunuz. Yani eğer o an kullanacağınız linkin SEO’ya uygun olup olmaması önemli değilse ve kulağınızı biraz uzun yoldan tutmaya razıysanız aşağıdaki gibi bir kod işinizi rahatlıkla görüyor:

1
<a href="javascript:void(0);" onclick="window.open('http://www.google.com/');">Google Aç</a>

Egonomik temasına gelince; temayı XHTML Strict DTD standartlarına uydurmaya çalışırken kendimi resmen zorlanmış ve köşeye sıkıştırılmış hissettim. Tamam, “sallapati davranmak, kör topal kod yazmak istiyorsan Strict ile kasma, git Transitional formu kullan” gibi bir seçenek sunmuşlar ancak o zaman da kendinizi yeni nesil, “yüksek standartlarda” tasarım yapılan dünyanın bir parçası olarak göremiyorsunuz (adı üstünde Transitional: geçiş formu).

Anasayfa ve sabit alanları düzenledikten sonra karşılaştığım en büyük problemlerden biri, sitedeki 1.300 küsür yazıda istisnasız olarak kullandığım target=”_blank” ifadesini SEO dostu biçimde standartlara uygun hale getirmekti. Bu noktada önce bir WordPress kullanıcısı olmanın avantajını, sonra da jQuery’nin sunduğu güzellikleri kullandım. Sıklıkla ve severek kullandığım, “bul ve değiştir” mantığına dayalı ufak bir PHP fonksiyon kalıbım var, ilk olarak bu kalıbı temanın functions.php dosyasına aşağıdaki biçimde uyarladım:

1
2
3
4
5
6
7
8
9
// post düzenle
function post_duzenle($postext) {  
    $postext = trim($postext);    
    $bul = array('target="_blank"');  
    $degistir = array('rel="yenilink"');
    $new_postext = str_replace($bul,$degistir,$postext);
    return $new_postext;  
}
add_filter('the_content', 'post_duzenle');

Bu fonksiyon sayesinde yazı içeriği yayınlanmadan önce kontrol ediliyor ve target=”_blank” ifadeleri rel=”yenilink” olarak değiştiriliyor. Yazının görüntülenme süresinini yok yere uzatıyor olmasına rağmen 1.300 yazıyı tek tek düzenlemekten çok daha mantıklı.

Sonraki olay tamamen jQuery’nin mahareti, sayfada rel=”yenilink” ifadesi kullanılan linklere otomatik olarak yeni pencerede açılma özelliği kazandırıyor. Bu işi gören kodlar ise aşağıdaki gibi:

1
2
3
4
5
6
7
8
9
<!-- Eğer sitenizde jquery kütüphanesi yüklenmiyorsa -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<!-- // -->

<script type="text/javascript">
$(document).ready(function() { 
  $('a[rel=yenilink]').attr('target','_blank');
});
</script>

Buradaki olay linklere çaktırmadan target=”_blank” özelliği kazandırmaktan başka bir şey değil, “standartlara uymak adına haybeye göbek çatlatmak” da denebilir.

Onlarca uzmanın belirlediği standartları kör cahil halimle eleştirdiğim bu yazı umarım işinizi kolaylaştırmaya yardımcı olur. Siz de kendi sitenizin W3C standartlara uygunluğunu şu adresten kontrol edebilirsiniz. Ben ise şimdi kara kara yazılarda iframe ile çağırdığım yaklaşık 200 video kodunu nasıl değiştireceğimi düşünüyorum, netice itibariyle olay sadece anasayfanın standartlara uygunluğu ile bitmiyor. Strict, iframe olayını da sevmediği ve bu iş için adam akıllı bir alternatif de sunmadığı için nasıl bir yol izleyeceğimi henüz bilmiyorum. Neyse bakalım, bindik bir alamete gedeyoz gıyamete…

Facebook Yorumları

6 Yorum

  1. Hocam siten şu anda W3C standartlarına uymuş gerçekten. Ayrıca şu menüleri düzenlemişsiniz ya çok göze batıyordu gerçekten çok şık olmuş yeni hali. Siten çok güzel maşallah böyle devam et inşallah 😀

  2. Caner
    Yazar

    Teşekkür ederim arkadaşlar, değişiklikleri beğenmenize ayrıca sevindim.

     

    @webmaster seo evet o olayı ben de sevmiyorum, en kısa zamanda bir hal çaresine bakacağız 🙂

     

    Burhan abi ben tüm tarayıcıları kullanıyorum ve zaten Chrome (5.0.3) dahil hepsinde kontrol etmiştim, senin Chrome’un versiyonu kaç acaba? Kıllandım şimdi 🙂

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir