21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
leorond
Profil
Ahoj, mám zde takoví problém a už nevím co s tím dělat.

Mám takovíto zápis

<div class="eu-cookies">
    <p>Tento web používá k poskytování služeb, personalizaci reklam a analýze
    návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte.</p>
    <button>V pořádku</button>
    <a href="https://www.google.com/policies/technologies/cookies/">Další informace</a>
</div>
<noscript><style type="text/css" >.eu-cookies { display:none }</style></noscript>
<script type="text/javascript">
$('.eu-cookies button').click(function() {
    var date = new Date();
    date.setFullYear(date.getFullYear() + 10);
    document.cookie = 'eu-cookies=1; path=/; expires=' + date.toGMTString();
    $('.eu-cookies').hide();
});
</script>

A funguje spolehlivě ale při zkouknutí jak jsem na tom se SEO mi to háže jednu jedinou chybu

Line 47, Column 37: document type does not allow element "style" here
<noscript><style type="text/css" >.eu-cookies { display:none }</style></…
✉
The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).

Mohl by jste mi někdo poradit jak to mám vyřešit?

Děkuji


Jednoduše mne to odkáže že to mám nacpat mezi <head></head> ale jak když mám v css stylu ještě jeden zápis .eu-cookies a když ho tam dám tak to nebude fungovat.
Trejpa
Profil
leorond:
Značka <style> může být podle specifikace pouze v elementu hlavičky HEAD, ty ji používáš v elementu těla BODY. Takže dokument je nevalidní, ale prohlížeče si s touto chybou běžně poradí. Na SEO to vliv nemá, věříš nesmyslným nástrojům.

když mám v css stylu ještě jeden zápis .eu-cookies a když ho tam dám tak to nebude fungovat
Záleží na pořadí CSS stylů nebo na síle selektorů. Dej styl v <noscript> za ostatní styly nebo mu zvyš váhy důležitějším selektorem, třeba div.eu-cookies {}.


Nezdá se, že by tvé řešení mělo vliv na jiné cookies. Jsi si jist, že žádné jiné identifikační cookies neukládáš, dokud návštěvník nedá vědomý souhlas? První návštěva stránky není souhlasem. Protože jinak jde o zbytečnou šaškárnu pro návštěvníky, která vůbec neřeší zřejmě „dodržovanou“ evropskou směrnici.
leorond
Profil
Trejpa: článek jsem přečetl a asi máš pravdu ale stejně chci vyzkoušet zda dám 100%
Tomáš123
Profil
leorond:
ale stejně chci vyzkoušet zda dám 100%
Existuje stránka, ktorá je vo validátore krásne zelená, ale inak je to čistý humus (fakt neviem kde ju mám hľadať, bol by som rád, ak by niekto doplnil odkaz :-)), takže 100% stále nemusí nič znamenať.
Trejpa
Profil
Tomáš123:
Ta validní stránka je uvedena i v článku odkázaném výše [#2]. SEO roboti kromě nepotřebné validity do svého bodování zohledňují i další zbytečnosti.
leorond
Profil
Jak píše v tom článku tak nejhorší je potom odpovídat na ty otázky jako ale tam je 5 chyb a jen 75%... bla bla bla jako kdyby ty stránky byli TOP programátor nebo je za 100% dosazovali na první příčku vyhledávače, nechápu to.
Trejpa
Profil
leorond:
Na to je jednoduchá odpověď protiotázkou: Kdo je cílovou skupinou stránky, lidé, nebo nějaký automat?
Zkušený kodér ví, která „pravidla“ může porušit, aby více prospěl lidem – třeba kompatibilnějším řešením pro více lidí.

Hlavním cílem automatických SEO kontrol je vydělat peníze svým tvůrcům tím, že budou doporučovat vlastní služby. Zbytek je jen psychologie, jak přesvědčit (oklamat) zákazníka, že si potřebuje pořídit jejich (stoprocentní) produkt.
Str4wberry
Profil
Pokud jde o validitu značky <style> v <body>, tak jde validátoru zacpat hubu atributem scoped:

HTML atribut scoped

Jen je dobré myslet na to, že může jednoho dne v prohlížečích začít fungovat.
leorond
Profil
Mám lepší řešení a to ty jejich bláznivé SEOmaty poslat do kšá a prostě se naučit žít s tím že pro některé stránky nebudu nikdy dost dobrý :D
Tomáš123
Profil
leorond:
bláznivé SEOmaty poslat do kšá
Nikdy som žiadny nepoužil, nič o nich neviem, ale takýto blud by som si upravil už len kvôli lepšiemu spánku :-).

ale jak když mám v css stylu ještě jeden zápis .eu-cookies
Myslím, že v tomto prípade by malo význam zabezpečiť to, čo sa nikdy neodporúča. Onen prvok s informáciou zoraziť cez JavaScript. Nikomu to neublíži (nad dôsledkami som sa iba krátko zamyslel).
Chamurappi
Profil
Reaguji na Trejpu:
Ta validní stránka je uvedena i v článku odkázaném výše [#2].
Ale znovu musím podotknout, že ve skutečnosti validní není. Smyslem její existence bylo ukázat, jak špatně validuje oficiální validátor, nikoliv, co všechno je validní.


Reaguji na Str4wberryho:
tak jde validátoru zacpat hubu atributem scoped
Podle uvedené chybové hlášky deklaruje XHTML DTD, v ní scoped nebude.
Kdyby validoval proti pravidlům HTML 5, tak je jeho kód validní už takhle.


Reaguji na leoronda:
Na druhou stranu je dobré vědět, jak HTML funguje. A že třeba hrát si na XHTML nemá moc smysl – chyby, k jejichž opravě tě tlačí W3C validátor, z pohledu prohlížečů (i vyhledávačů) vůbec být chybami nemusí. Používáš-li Content-Type: text/html, berou všichni (kromě oficiálního validátoru) tvůj kód jako HTML 5, nikoliv jako podmnožinu XML, nehledě na to, jaký píšeš <!doctype>.

Jinak k té hlášce eu-cookies: proč nenastavíš skriptem nějakou třídu třeba na <html>, která by zařídila, že se hláška (mající ve výchozím stavu s display: none) zviditelní? Kdo by neměl JS, neměl by třídu, hlášku by neviděl – pak nemusíš používat kombinaci <noscript>/<style> (i když v HTML funguje, na rozdíl od XHTML).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0