W3C standartlarının bir temanın uyumluluğu nasıl korunur


10

Bir tema yazdığımda XHTML 1.1 ve CSS 2.1 ile uyumlu olduğundan emin oldum. Sonra eklentiler ekledim ve tema artık XHTMl 1.1 ile uyumlu değil. Sonra CSS'imde Google API yazı tipini kullandım ve artık daha uzun CSS 2.1 uyumlu.

Eklentilerden, yazı tipinden vb. Kurtulmadan uyumluluğu korumamın bir yolu var mı yoksa doğrulama hatalarını göz ardı etmem gerekir mi?

Yanıtlar:


5

Düzeltme, temanız hala XHTML 1.1 ve CSS 2.1 ile uyumluydu, ancak eklediğiniz eklentiler uyumlu olmayan ek kod ekledi .

Ne yazık ki, eklentileri kullanıyorsanız uyumluluğu korumanın kolay bir yolu yoktur. Yapabileceğiniz en iyi şey, temanızı ve şahsen sorumlu olduğunuz biçimlendirmeyi doğrulamaktır, daha sonra diğer geliştiricilerin kendi çalışmalarını doğrulamak için zaman ayırdığını umuyoruz.

Alternatif, sizin açınızdan çok daha fazla çalışmadır - eklentilerin temel işlevlerini kullanmaya devam edebilirsiniz, ancak tarayıcıya herhangi bir işaretleme yapmasına izin vermeyin . Eklentinin dokunduğu her şeyin kilidini açan kendi özel katmanınızı ekleyin ve kendi çıktı arabelleğinizi oluşturun. Bu sadece size biçimlendirme tarzı üzerinde kontrol tarayıcıya gönderilen olacak şekilde.

Birkaç eklenti HTML 5'i kullanmaya başlıyor ... diğerleri CSS3'ü kullanmaya çalışıyor. Bu eklentileri yüklerseniz ve çıktılarını sterilize etmek ve doğrulamak için adımlar atmazsanız, siteniz doğrulamaktan vazgeçer.


1
Teşekkürler, HTML'yi sterilize etme seçeneğiyle gitmek istediğimi sanmıyorum. Bu W3C rozetlerini sitemden kaldırmak zorunda kalabilirim :)
James

Oh, otomatik olarak uyum sağlayabileceğiniz için bir ihtiyaç değildir, aşağıdaki cevabıma bakın. Tema veya eklenti çıktısı ile
uğraşmanıza

+1, diğer insanların kodlarına asla güvenemezsiniz, sadece kodlarının geçerli html'yi tükettiğini umarsınız.
Ben Everard

8

Her eklenti oluşturmak istediği kodu üretecek ve bazıları XHTML 1.1 uyumlu olmayacak. Bunu düzeltmenin tek makul yolu, her birini denetlemek ve suçluları değiştirmek veya geliştiricinin değişikliklerinizi düzeltme eki olarak kullanmasını sağlamaktır.

Alternatif olarak, temizlemek için bir filtre yazmaya çalışabilirsiniz, ancak tüm özel davayı yakalamaya çalışmak, kendi kişisel kabusumun bir versiyonu gibi görünüyor ve aynı zamanda kötü yarar için performansı da etkileyecek.

Bunu isteyen bir müşteriniz / patronunuz var mı, yoksa sadece "olması hoş bir şey" olduğu varsayılan bir şey mi? (Evet, bu konuda güçlü hissedenler var. Ancak ben onlardan biri değilim.)

Bununla birlikte, XHTML web'deki " sarışın çocuk " statüsünü kaybediyor ; Tim Berners-Lee bile 2006'da bunu söyledi :

Bazı şeyler birkaç yıl boyunca daha net. HTML'yi aşamalı olarak geliştirmek gerekir. Boş etiketleri ve ad alanlarındaki özellik değerleri ve eğik çizgiler arasındaki alıntılar da dahil olmak üzere dünyayı XML'e geçirme girişimi işe yaramadı. Büyük HTML üreten kamuoyu hareket etmedi, çünkü tarayıcılar şikayet etmedi. Bazı büyük topluluklar değişti ve iyi biçimlendirilmiş sistemlerin meyvelerinden hoşlanıyorlar, ama hepsi değil. HTML'yi aşamalı olarak sürdürmenin yanı sıra iyi biçimlendirilmiş dünyaya geçişi sürdürmenin ve o dünyada daha fazla güç geliştirmenin önemi vardır.

HTML5'i okumak da XHTML 1.0'dan çok daha kolay okumak isteyebilirsiniz . StackOverflow üzerinde. İşte özeti:

Sadece sözdizimi açısından, HTML5 kullandığınızda, her zaman standartlar modunu çağıran daha temiz, daha kolay okunabilir bir işaretleme elde edersiniz. XHTML 1.0'ı (metin / html olarak sunulur) kullandığınızda, tarayıcının otomatik olarak yapacağı (bir boktan dtd'ye karşı doğrulamak için) bir parça kabuk belirtirsiniz.


Bu benim kişisel web sitem ve temanın kendisi oldukça eski. Web sitesi ve tema benim için sadece hobi. Yeni bir tema yazdığım zaman, muhtemelen tüm büyük tarayıcılarda oldukça iyi HTML5 desteğine sahip olacağız. Eklentiler uyumlu olmayan işaretleme oluşturmaya devam edecek. Suçluyu temizlemeyi deneyebilirim, ancak eklenti güncellemeleri zorlaşıyor. Bağlantılar için teşekkürler.
James

Evet, bir iş amacı veya XHTML uyumluluğunu sürdürme yeteneğiniz konusunda uzmanlık göstermek için değilse, endişelenmeyeceğim.
MikeSchinkel

Web sitesini ve sunucuları öğrenme aracı olarak kullanıyorum. İş yerinde yaptığımdan farklı şeyler öğrenmek.
James

Aylak. Kulağa eğlenceli olmayan bir iş gibi geliyor. Öğrenmek istediğim tek şey! :)
MikeSchinkel

Oh, iş yeterince eğlenceli, ama çoğunlukla Windows tabanlı geliştirme. Bu daha çok C # :) bir mola gibi
James

2

Standartlara uygunluk, Web sitenizin tüm tarayıcılarda çalışacağını garanti etmez. Standartlara uygunluğu göz ardı edin ve mümkün olduğunca çok tarayıcıyla test yapmaya odaklanın.


1

Sitenizin tüm çıktısını arabelleğe alabilir ve daha sonra uyumlu HTML'ye toplayabilirsiniz. En iyisi, bunun tam otomatik olarak yapılabilmesidir:

Tema init veya ilgili kancalarda çıktı arabelleğe almayı etkinleştirebilirsiniz (örn. * Setup_theme * hook).

İşte iki kod parçası. Birincisi çıktı tamponlamasını başlattığınızı ve tamponu daha sonra okuduğunuzu gösterir:

<?php
ob_start();
?><?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>

İkincisi, yapılan yapılandırma seçeneklerinden bazılarını gösterir:

/* Tiny Configuration */
$config["clean"]         = true;
$config["hide-comments"] = true;
$config["output-xhtml"]  = true;
$config["indent-spaces"] = 2;
$config["tab-size"]      = 2;
$config["wrap"]          = 0;

$buffer = ob_get_clean();
$tidy   = tidy_repair_string($buffer, $config);

echo $tidy;

Bahse girerim zaten bunu yapmak için mevcut bir wordpress eklentisi var. Bakalım:


İlginç. Bir deneyeceğim.
James
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.