Pytanie w sprawie html, standards-compliance, xhtml – Czy zgodność z XHTML jest bezcelowa?

20

Buduję teraz witrynę, do tej pory boleśnie zmusiłem wszystko, aby była zgodna i wygląda to prawie tak samo we wszystkich przeglądarkach. Jednak zaczynam implementować kilka innych darmowych javascriptów, które wykonują takie czynności, jak dodawanie atrybutów (np. Order = 2). Mógłbym to obejść, ale to ból, i zaczynam tracić moje zasady, aby upewnić się, że wszystko jest ważne. Naprawdę, czy jest jakiś sens, aby pracować nad czymś takim? Mam wtyczkę HTMLValidator dla Firefoksa i patrząc na większość głównych witryn (w tym na tę, google, itp.), Nie są one poprawne XHTML lub HTML.

Zobacz także pytanie „Wybór wersji HTML”:stackoverflow.com/questions/3654/html-version-choice Chris
Usunąłem tag zgodności ze słowami kluczowymi. Rażąco obraźliwe, IMHO. Jon Limjap

Twoja odpowiedź

11   odpowiedzi
0

Oczywiście, zawsze możesz iść naprzód i napisać to w taki sposób, w jaki chcesz, upewniając się, że przynajmniej działa. Oczywiście, już doświadczyliśmy tej mentalności i byliśmy świadkami jej efektów,Internet Explorer 6.

Jestem wielkim fanem tegoMike Davidson podejście do rozwoju zorientowanego na standardy.

Tylko dlatego, że możesz zweryfikować swój kod, nie oznacza to, że jesteś lepszy niż ktokolwiek inny. Heck, to nawet nie musi oznaczać, że piszesz lepszy kod niż ktokolwiek inny. Ktoś, kto potrafi napisać aplikację bankową w całości we Flashu, jest lepszym koderem niż ty. Ktoś, kto potrafi zintegrować kod innej firmy w skomplikowanym środowisku publikacji, jest lepszym koderem niż ty. Pomyśl o walidacji jako korzystającej z doskonałej gramatyki obrazu; Pomaga to w rozpowszechnieniu pomysłów i jest oznaką dobrego wykształcenia, ale nie jest tak ważne, jak pomysły i koncepcje, o których myślisz, a następnie komunikujesz się. Najbardziej charyzmatyczna i prawdopodobnie najmądrzejsza osoba, dla której kiedykolwiek pracowałem, pochodziła z Południa i używała słowa „nie” dość regularnie. Nie uczyniło go to wcale mniej inteligentnym, a właściwie sprawiło, że stał się bardziej pamiętny. Mówię tylko, że jest wiele rzeczy, które można osądzić na podstawie… walidacja jest jedną z nich, ale na pewno nie najważniejszą.

Wiele osób źle rozumie ten post, co oznacza, że ​​nie powinniśmy kodować do standardów. Powinniśmy oczywiście, ale to nie jest coś, o czym naprawdę należy myśleć. Thearmia walidacyjna zawsze będzie potępiał te, które nie sprawdzają poprawności, ale walidacja oznacza o wiele więcej niż poprawny kod.

Więc nie traćcie zasad, ale pamiętajcie, że jeśli zastosujecie się do standardów, znacznie rzadziej znajdziecie się w głębi problemów w przyszłości. Treść, którą próbujesz podać, jest o wiele ważniejsza niż sposób jej wyświetlania.

2

Pamiętaj tylko, że tag XHTML renderuje się inaczej w większości przeglądarek niż go nie posiada. Atrybut DOCTYPE określa, w jakim trybie przeglądarka renderuje i dyktuje, co jest dozwolone. Jeśli odejdziesz od zgodności ze standardem XHTML, pamiętaj o ponownym przetestowaniu we wszystkich przeglądarkach.

Osobiście stosuję się do najnowszych standardów, gdy tylko jest to możliwe, ale na pewno trzeba zważyć czas / pieniądze, aby zachować zgodność z przepisami, a większość zależy od osobistych preferencji.

1

Być HTML Ważna jest zazwyczaj pomoc zarówno dla Ciebie, jak i silnika renderującego przeglądarki. Im mniej dziwactw ma do czynienia z przeglądarkami, tym bardziej mogą skupić się na dodawaniu nowych funkcji. Im bardziej jesteś surowy, tym mniej czasu poświęcisz na zastanawianie się, dlaczego ten zastrzeżony tag f @ # cking nie działa w innych przeglądarkach.

Z drugiej strony XHTML jest, IMHO, bardziej bezcelowy, chyba że planujesz zintegrować go z jakimś dokumentem XML. Ponieważ IE nadal go nie rozpoznaje, nie ma sensu pozostać przy nim.

5

Walidacja jest przydatna do określenia, kiedy sprawy nie spełniają standardów, z którymi prawdopodobnie się zgadzasz. Jeśli celowo używasz narzędzia, które dodaje coś, czego nie ma w standardach walidacji, to oczywiście nie narusza to twojej osobistej umowy standardów.

Ta dyskusja staje się o wiele trudniejsza, jeśli masz szefa lub klienta, który wierzy, że wszystko powinno zwrócić zielone światło, ponieważ będziesz musiał im to wyjaśnić i przekonać ich, że nie jesteś po prostu leniwy.

Powiedziawszy to, upewnij się, że nie jest to tylko przypadek, kiedy jesteś leniwy. Podczas gdy walidatory mogą irytująco stale wywoływać każdą instancję atrybutu strony trzeciej, to nie unieważnia (ha) innych błędów sprawdzania poprawności, o których wspominają. Często warto skanować jako środek do podwójnego sprawdzenia swojej pracy.

1

Myślę, że pisanie „prawidłowego kodu” jest ważne, po prostu dlatego, że dajesz przykład, przestrzegając reguł. Jeśli każdy programista napisał kod dla Fx, Safari i Opery, myślę, że IE musiał „zacząć przestrzegać reguł” wcześniej niż w wersji 8.

3

Jeśli planujesz wykorzystać XHTML jako XML, warto, aby Twoje strony były prawidłowe i dobrze ukształtowane. W przeciwnym razie zwykły stary semantyczny kod HTML jest prawdopodobnie pożądany. Tak czy inaczej potrzeby Twoich odbiorców przeważają nad potrzebami walidatora.

2

Do tej pory nie doświadczyłem wystąpienia, w którym dodanie niestandardowego atrybutu spowodowało problem z renderowaniem w dowolnej przeglądarce.

Nie próbuj obejść tych niestandardowych atrybutów. Walidatory są przydatne jako narzędzia do podwójnego sprawdzania kodu pod kątem niezamierzonych błędów, ale jak wszyscy wiemy, nawet w pełni poprawny xhtml nie zawsze będzie renderowany konsekwentnie we wszystkich przeglądarkach. W wielu przypadkach decyzje projektowe wymagają użycia hacków specyficznych dla przeglądarki (i niestandardowych), aby uzyskać efekt. To jest życie twórcy stron internetowych, o czym świadczy liczba serwisów sterujących technologią (google, yahoo itp.), Które nie sprawdzają poprawności.

0

W żadnym wypadku nie jest to bezcelowe, ale jest wiele usprawiedliwienia, by je złamać. Podczas początkowych etapów rozwoju CSS jest bardzo przydatny do diagnozowania problemów z przeglądarką, jeśli twój znacznik jest ważny. Poza tym, jeśli chcesz coś zrobić i uważasz, że najwłaściwszą metodą jest złamanie walidacji, zazwyczaj jest to w porządku.

Alternatywą dla używania atrybutów niestandardowych jest użycie atrybutu „rel”, na przykład patrzLitebox (i jego krewni).

4

Zgodność ze standardami polega na zwiększeniu szansy, że Twoja strona będzie działać w przeglądarkach, z którymi nie testujesz. Obejmuje to czytniki ekranu i następną aktualizację przeglądarek, z którymi testujesz, oraz przeglądarek, z którymi testujesz, ale które zostały skonfigurowane przez użytkownika w nieoczekiwany sposób.

Sprawdzanie poprawności niczego ci nie gwarantuje, ponieważ Twoja strona może sprawdzać poprawność, ale nadal być wystarczająco niejednoznaczna, aby pewnego dnia nie zachowywała się tak, jak chcesz.

Jeśli jednak twoja strona się sprawdza, masz przynajmniej siłę specyfikacji XHTML mówiącą, jak powinna się zachowywać. Jeśli się nie sprawdza, masz tylko kilka nieformalnych konwencji między twórcami przeglądarek.

Prawdopodobnie lepiej jest napisać poprawny HTML 3 niż nieprawidłowy XHTML, jeśli jest coś, co chcesz zrobić, co jest dozwolone w jednym, ale nie w drugim.

+1 do ostatniego akapitu Ian Goldby
2

Jeśli chodzi o przeglądarki, zgodność z XHTML nie ma sensu, ponieważ:

Przeglądarki nie mają parserów XHTML. Mają nie-specyficzne dla wersji, kompatybilne z WWW parsery HTML, które budują DOM wokółhttp://www.w3.org/1999/xhtml przestrzeń nazw.

Niektóre przeglądarki, które mają parsery XML, mogą traktować znaczniki XHTML podawane jako aplikacja / xhtml + xml jako XML. Spowoduje to pobranie XML i nadanie domyślnego stylu i zachowania HTML elementom whttp://www.w3.org/1999/xhtml przestrzeń nazw. Ale jeśli chodzi o parsowanie, nie ma to nic wspólnego z XHTML. Reguły analizowania XML są przestrzegane, a nie niektóre reguły DTD XHTML.

Tak więc, kiedy używasz znaczników XHTML, dajesz coś obcego przeglądarkom i sprawdzasz, czy wychodzi tak, jak chcesz. Chodzi o to, że możesz to zrobić przy użyciu dowolnych znaczników. Jeśli renderuje się zgodnie z przeznaczeniem i tworzy prawidłowy DOM, robisz całkiem dobrze. Musisz się tylko upewnić, że DOCTYPE jest włączony i upewnij się, że nie polegasz na błędzie przeglądarki (więc w przeglądarkach, które nie zawierają błędu, rzeczy nie rozpadają się).

Zgodność ze standardem XHTML jest przydatna do sprawdzania składni (przez sprawdzanie poprawności), aby sprawdzić, czy znaczniki są dobrze uformowane. Pomaga to uniknąć analizowania błędów. Oczywiście można to zrobić również za pomocą HTML, więc w tym przypadku nie ma nic specjalnego w XHTML. Tak czy inaczej, nadal musisz testować w przeglądarkach i mieć nadzieję, że producenci przeglądarek zrobią niesamowite parsery HTML, które mogą akceptować wszystkie rodzaje bzdur.

To, co nie ma sensu, to próba dostosowania się do oczekiwań przeglądarek. HTML5, pomaga w tym wielkim czasie. A mówiąc o HTML5, możesz zdefiniować własne atrybuty, które chcesz. Wystarczy poprzedzić je danymi-, jak w <p data-order = "To jest poprawny, niestandardowy atrybut."> Test </p>.

Wszystkie główne przeglądarki oprócz IE mają parsery XHTML. DTD XHTML jest w pewnym sensie szanowany (nazwane jednostki działają, gdy są obecne, czasami błędnie, nawet jeśli nie są). Poprawność i walidacja w terminach XML to różne rzeczy. Kornel
0

Staram się pisać kod zgodny większość czasu ważenia czasu / kosztów w stosunku do potrzeb odbiorców we wszystkich przypadkach, z wyjątkiem jednego. Tam, gdzie kod musi być zgodny z 503, w twoim najlepszym interesie i interesie odbiorców jest pisanie zgodnego kodu. Natknąłem się na kilka czytników ekranu, które wysadzają w powietrze, gdy kod jest nawet nieco wyłączony.

Jak mówi większość plakatów, naprawdę chodzi o to, czego potrzebuje publiczność.

Powiązane pytania