Sitelerimizi tasarlarken web standartlarına (W3C) uyumlu olarak tasarlamaya çalışıyoruz. Tabiî tasarım bu uyum için yeterli değil, içeriğimizin de uyumlu olması gerekir. İçeriğimizde uyumu bozacak bir çok nesne olabilir. Bu yazımda ise sadece bağlantıların (linkleri) nasıl standartlara uydurulacağını göstereceğim.
Genel olarak şöyle bir bağlantı standartlara uygundur.
[php]<a href="www.yakuter.com">Yakuter</a>
<!– veya –>
<a href="https://www.yakuter.com" title="Yakuter">Yakuter</a>
[/php]
Sorun ise bağlantımızla birlikte değişken göndermek istediğimizde ortaya çıkar. Normalde “ad” ve “soyad” olan iki değişkeni bir dosyaya göndermek istediğimizde şöyle bir bağlantı kullanırız.
[php]<a href="http://www.site.com/index.php?ad=erhan&soyad=yakut">Erhan Yakut</a>[/php]
Bu kodu kontrole tabiî tuttuğunuzda şöyle bir hata alırsınız;
… cannot generate system identifier for general entity…
Bu hatayı gidermek ise oldukça kolaydır. Tek yapmanız gereken bağlantıyı yazarken & yerine [php]&[/php] kullanmak. Örneği düzeltip tekrar yazacak olursak şöyle bir şekil karşımıza çıkar.
[php]<a href="http://www.site.com/index.php?ad=erhan&soyad=yakut">Erhan Yakut</a>[/php]
Hepsi bu kadar. Daha hatasız sayfalarda görüşmek üzere…
Hocam teşkler. ve ayrıca target="blank_" yerine onclick="target='_blank';" kullanılarakta bir hata daha giderilmiş oluyor.
target blank yerine rel="external" kullanın arkadaşlar daha uyumlu olur html5 tek. göre
ByAgressif, W3C doğrulayıcısının target=”_blank” etiketine kızma sebebi, bu kullanımın erişebilirlik standartlarını ihlal etmesinden kaynaklanmaktadır. Ziyaretçiyi, bağlantıyı yeni pencerede açmasına zorlayarak, gezintisine müdahele etmiş oluyorsunuz. Engelli kullanıcılar ya da yeterli düzeyde bilgi sahibi olmayan kullanıcılar, bir bağlantı istekleri dışında yeni pencerede açıldığında daha önce gezdikleri sayfaya geri dönüşü sağlayamıyorlar. (Çünkü tarayıcıdaki “geri” (“back”) tuşu çalışmıyor.)
Siz target=”_blank” etiketini onclick methodunda çağırarak sadece W3C doğrulayıcısını kandırmış oluyorsunuz, standartlara uymuş olmuyorsunuz.
Merhaba;
Sadece & karakteri için değil Türkçe domainlerdeki Türkçe karakterler için de aynı şekilde davranmak gerekiyor. ASP kullananlar için bunu yapmanın en kolay yolu UrlEncode() kullanmak olacaktır.
bende bu aralar w3 standartlarına göre kod yazmaya çalışıyorum ama ne kadar olursa olsun hatalar cıkıyor :)
target="_blank"Yerinetarget="blank"Koduda Çok Sağlam Çalışıyor :D ve WC3 Standartlarında…çok güzel basit bir anlatım yapmışsın.paylaştığın için teşekkür ederim.
target=”blank” yerine rel=”external” kullanırsanız standartlara uymuş olursunuz.
rel=”external” tek başına bir işe yaramaz. Bahsettiğiniz yöntem DTD Transitional olarak tanımlandığında kullanılabilir ve bir javascript betiği ile rel özelliği external olan a elemanlarını bulup, bu elemanlara target=”_blank” özelliği eklenerek çalıştırılabilir. Yani sadece W3C doğrulayıcısını kandırmış olursunuz. Standartlara uymuş olmazsınız. Daha önce de söylediğim gibi, bağlantıları yeni pencerede açmak ya da açmaya çalışmak standartların dışında bir uygulama. Amacınız W3C doğrulayıcısından hatasız geçmekse devam edin buyrun kullanın ama amacınız standartları uygulamaksa o zaman önce standartları iyice inceleyip anlamalısınız.
Bu konunun bu kadar derin bir mevzu olduğunu bilmiyordum.
Güzel bir not/bilgi. Teşekkür ederim.
hacı hatasız sayfalarda görüşmekle ilgili dileğini okuduktan hemen sonra browserin altındaki “sayfada hata” yazısını gördüm. eleştirmek için değil bu yazım sadece hoşuma gitti :)
iyide emre erkan arkadaşım. yönetim paneli tasarlıyorsun. site ana sayfası isimli bir link vermelisin kişi yönetim panelinde düzenleme yağtığında site ana sayfasına ulaşmak isteyecek. dışarıya link vermezsen adam her düzenlemede yeniden giriş yapmak durumunda kalacak yada en iyi ihtimalle sayfaları bir ileri bir geri yapacak. bu durumda dışarı vermeyecekmiyiz biz şimdi? kurallara uyacağız diye de kullanışsız bir site mi yapacağız. eğer kurallar bu noktada bu şekilde ise bu kurallar yanlış bu sorun içn yanlış tabi. diğer dediğim nokta doğru ama burada kural ihlali olduğunu düşünmüyorum. istismar yok çünkü. ihtiyaç var.
teşekkürler
çok çok teşekkür ederim… birilerinin türkçe olarak bu konuda çalışma yapması ne güzel… kodları düzeltmek için neredeyse kafayı yemek üzereydim…
başarılar dilerim…
engin
sonuç olarak;
target="_blank" yazmak yerine rel="external" mi yazacağız? aynen bu şekilde mi?