Bagaimana menjaga standar kepatuhan W3C tema

10

Ketika saya menulis tema, saya memastikan itu sesuai dengan XHTML 1.1 dan CSS 2.1. Lalu saya menambahkan plugins dan temanya tidak lagi sesuai dengan XHTMl 1.1. Lalu saya menggunakan font Google API di CSS saya dan itu lebih sesuai dengan CSS 2.1.

Apakah ada cara saya dapat menjaga kepatuhan tanpa menyingkirkan plugin, font dll atau haruskah saya mengabaikan kesalahan validasi?

James
sumber

Jawaban:

5

Koreksi, tema Anda masih sesuai dengan XHTML 1.1 dan CSS 2.1, tetapi plug-in yang Anda tambahkan menyuntikkan kode tambahan yang tidak sesuai.

Sayangnya, tidak ada cara mudah untuk menjaga kepatuhan jika Anda menggunakan plug-in. Yang terbaik yang dapat Anda lakukan adalah memvalidasi tema Anda dan semua markup yang menjadi tanggung jawab Anda secara pribadi, lalu berharap bahwa pengembang lain telah meluangkan waktu untuk memvalidasi pekerjaan mereka sendiri.

Alternatifnya adalah pekerjaan yang lebih banyak di pihak Anda - Anda masih dapat menggunakan fungsionalitas inti dari plug-in, tetapi jangan biarkan mereka mengeluarkan markup apa pun ke browser. Tambahkan layer kustom Anda sendiri yang melepas semua sentuhan plug-in, dan bangun buffer output Anda sendiri. Ini adalah satu - satunya cara Anda akan memiliki kontrol atas gaya markup yang dikirim ke browser.

Beberapa plug-in mulai menggunakan HTML 5 ... lainnya mencoba menggunakan CSS3. Jika Anda memasang plug-in ini dan tidak mengambil langkah untuk membersihkan dan memvalidasi outputnya, maka situs Anda akan berhenti memvalidasi dengan benar.

EAMann
sumber
1
Terima kasih, saya tidak berpikir saya ingin pergi dengan opsi membersihkan HTML. Saya mungkin harus menghapus lencana W3C itu dari situs saya :)
James
Oh, tidak perlu karena Anda dapat secara otomatis memperoleh kepatuhan, lihat jawaban saya di bawah ini. Tidak perlu repot dengan tema atau output plugin Anda :)
hakre
+1, Anda tidak akan pernah bisa benar-benar mengandalkan kode orang lain, hanya berharap kode mereka meludahkan html yang valid.
Ben Everard
8

Setiap plugin akan menghasilkan kode yang ingin dihasilkan dan beberapa di antaranya tidak akan sesuai dengan XHTML 1.1. Satu-satunya cara yang masuk akal untuk memperbaikinya adalah dengan mengaudit masing-masing dan baik memodifikasi pelanggar atau meminta pengembang untuk memodifikasi atau menggunakan modifikasi Anda sebagai tambalan.

Bergantian Anda dapat mencoba menulis filter untuk membersihkannya tetapi mencoba untuk menangkap semua kasus khusus sepertinya merupakan versi dari mimpi buruk pribadi saya sendiri dan itu juga akan mempengaruhi kinerja untuk keuntungan dudious.

Apakah Anda memiliki klien / bos yang menginginkan ini, atau itu hanya sesuatu yang dianggap sebagai " baik untuk dimiliki ?" (Ya, ada beberapa yang sangat merasakannya. Namun saya bukan salah satunya.)

Yang mengatakan, XHTML kehilangan status " anak berambut pirang " di web; bahkan Tim Berners-Lee mengatakannya di tahun 2006:

Beberapa hal lebih jelas dengan beberapa tahun ke belakang. Diperlukan untuk mengembangkan HTML secara bertahap. Upaya untuk membuat dunia beralih ke XML, termasuk tanda kutip di sekitar nilai atribut dan garis miring dalam tag dan ruang nama kosong sekaligus tidak berhasil. Publik penghasil HTML besar tidak bergerak, terutama karena browser tidak mengeluh. Beberapa komunitas besar memang bergeser dan menikmati hasil dari sistem yang terbentuk dengan baik, tetapi tidak semua. Penting untuk mempertahankan HTML secara bertahap, serta melanjutkan transisi ke dunia yang terbentuk dengan baik, dan mengembangkan lebih banyak kekuatan di dunia itu.

Anda mungkin juga ingin membaca HTML5 jauh lebih mudah untuk menulis daripada XHTML 1.0. lebih pada StackOverflow. Inilah ringkasan mereka:

Hanya sintaksis, ketika Anda menggunakan HTML5, Anda berakhir dengan markup bersih, lebih mudah dibaca yang selalu memanggil mode standar. Ketika Anda menggunakan XHTML 1.0 (disajikan sebagai teks / html), Anda menentukan sekelompok kasar (untuk memvalidasi terhadap dtd jelek) yang akan dilakukan browser secara otomatis.

MikeSchinkel
sumber
Ini adalah situs web pribadi saya dan temanya sendiri sudah cukup tua. Situs web dan tema semua hanya hobi bagi saya. Pada saat saya menulis tema baru, kita mungkin akan memiliki dukungan HTML5 yang cukup baik di semua browser utama. Plugin akan terus menghasilkan markup yang tidak sesuai. Saya bisa mencoba membersihkan pelaku tetapi kemudian pembaruan plugin semakin sulit. Terima kasih atas tautannya.
James
Ya, jika ini bukan untuk tujuan bisnis atau untuk menunjukkan keahlian pada kemampuan Anda untuk mempertahankan kepatuhan XHTML saya tidak akan khawatir tentang hal itu.
MikeSchinkel
Saya menggunakan situs web dan server sebagai alat belajar. Mempelajari hal-hal yang berbeda dari apa yang saya lakukan di tempat kerja.
James
Kekecewaan. Kedengarannya seperti pekerjaan yang tidak menyenangkan. Sepertinya hanya belajar yang saya lakukan! :)
MikeSchinkel
Oh, pekerjaan itu cukup menyenangkan, tetapi sebagian besar pengembangan berbasis Windows. Ini lebih seperti istirahat dari C # :)
James
2

Kepatuhan terhadap standar tidak menjamin situs Web Anda akan berfungsi di semua browser. Abaikan kepatuhan standar dan fokus pada pengujian dengan sebanyak mungkin browser.


sumber
1

Anda dapat menyangga seluruh output situs Anda dan kemudian merapikannya ke dalam HTML yang sesuai. Yang terbaik adalah, ini dapat dilakukan sepenuhnya otomatis:

Anda dapat mengaktifkan buffering output pada tema init atau kait terkait (mis. * Setup_theme * hook).

Berikut adalah dua fragmen kode. Yang pertama menunjukkan bahwa Anda memulai buffer output dan membaca buffer nanti:

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

Yang kedua menunjukkan beberapa opsi konfigurasi dalam aksi:

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

Saya yakin sudah ada plugin wordpress yang ada untuk melakukannya. Ayo lihat:

hakre
sumber
Menarik. Saya akan mencobanya.
James