it-swarm-eu.dev

Jak dodržet standardy W3C

Když jsem napsal téma, ujistil jsem se, že vyhovuje XHTML 1.1 a CSS 2.1. Pak jsem přidal pluginy a téma již není v souladu s XHTMl 1.1. Pak jsem ve svém CSS použil písmo Google API a je kompatibilní s CSS 2.1.

Existuje způsob, jak mohu udržet dodržování předpisů, aniž bych se zbavil pluginů, fontů atd. Nebo bych měl ignorovat chyby ověřování?

10
James

Oprava, vaše téma bylo stále v souladu s XHTML 1.1 a CSS 2.1, ale plug-iny, které jste přidali, přidali další kód, kterýnebylcompliant.

Pokud používáte moduly plug-in, bohužel neexistuje snadný způsob, jak zachovat shodu. Nejlepší, co můžete udělat, je ověřit si téma a všechny značky, za které jste osobně zodpovědní, a doufat, že ostatní vývojáři si udělali čas na ověření své vlastní práce.

Alternativou je mnohem více práce na vaší straně - stále můžete používat základní funkce plug-inů, ale nedovolte jim, aby na výstup jakékoliv markup do prohlížeče. Přidejte svou vlastní vrstvu, která odemyká vše, co se dotýká zásuvného modulu, a vytvořte si vlastní výstupní vyrovnávací paměť. Toto jeonlyzpůsob, jakým budete mít kontrolu nad stylem značek odeslaných do prohlížeče.

Některé plug-iny začínají používat HTML 5 ... jiní se snaží používat CSS3. Pokud tyto plug-iny nainstalujete a neprovedete kroky k dezinfekci a ověření jejich výstupu, vaše stránky přestanou řádně ověřovat.

5
EAMann

Každý plugin bude generovat kód, který chce generovat, a některé z nich nebudou kompatibilní s XHTML 1.1. Jediný rozumný způsob, jak to napravit, je provést audit každého z nich a buď upravit pachatele, nebo nechat vývojáře upravit nebo použít vaše úpravy jako opravu.

Alternativní můžete zkusit napsat filtr, aby se vyčistil, ale snaží se chytit všechny speciální případy se jeví jako verze mé vlastní osobní noční můry, a to by také ovlivnilo výkon pro dudious prospěch.

Máte klienta/šéfa, který to chce, nebo je to jen něco, co se předpokládá jako " Nice-to-have ?" (Ano, někteří se o tom cítí silně. Já ale nejsem jeden z nich.)

To znamená, že XHTML ztrácí svůj status " fair-haired child " na webu; dokonce Tim Berners-Leeřekl tak zpět v roce 2006:

Některé věci jsou jasnější se zpětným pohledem několik let. Je nutné postupně vyvíjet HTML. Pokus o to, aby se svět změnil na XML, včetně uvozovek kolem hodnot atributů a lomítek v prázdných značkách a jmenných prostorech najednou, nefungoval. Velká veřejnost generující HTML se nepohnula, hlavně proto, že si prohlížeče nestěžovaly. Některé velké komunity se posunuly a užívají si ovoce dobře formovaných systémů, ale ne všechny. Je důležité udržovat HTML postupně, stejně jako pokračovat v přechodu do dobře formovaného světa a rozvíjet více moci v tomto světě.

Můžete také chtít číst HTML5 je mnohem snazší psát než XHTML 1.0. over na StackOverflow. Zde je jejich shrnutí:

Pouze syntaxe-moudrý, když používáte HTML5, skončíte s čistší, snadněji čitelné značky, které vždy vyvolá režim standardů. Když používáte XHTML 1.0 (sloužil jako text/html), určujete spoustu crud (aby bylo možné ověřit proti mizernému dtd), které prohlížeč provede automaticky.

8
MikeSchinkel

Dodržování norem nezaručuje, že váš web bude fungovat ve všech prohlížečích. Ignorujte dodržování norem a zaměřte se na testování s co největším počtem prohlížečů.

2
tomdxw

Můžete ukládat do vyrovnávací paměti celý výstup svých stránek a poté jej uklidit do kompatibilního kódu HTML. Nejlepší je, že to lze provést plně automatizovaně:

Můžete povolit buffering výstupu na téma init nebo související háky (např. * Setup_theme * hook).

Zde jsou dva fragmenty kódu. První z nich ukazuje, že spustíte vyrovnávací paměť výstupu a později načtete vyrovnávací paměť:

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

Druhá část ukazuje některé možnosti konfigurace v akci:

/* 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;

Vsadím se, že pro to již existuje plugin pro wordpress. Uvidíme:

1
hakre