Ndërkombëtare
Përputhja e deklarimeve të gjuhës
A pajtohet atributi lang i <html> me etiketën e vjetër content-language; kontroll i ngushtë.
Çfarë është
Gjuha e një faqeje mund të deklarohet në disa vende: te atributi lang i <html>, te koka HTTP Content-Language, dhe te etiketa e vjetër <meta http-equiv="content-language">.
Nga këto, vetëm lang te <html> përdoret sot nga shfletuesit dhe nga teknologjitë ndihmëse. Etiketa http-equiv="content-language" është e hequr nga standardi i HTML-së dhe nuk duhet përdorur më.
Kur të dyja ekzistojnë dhe thonë gjëra të ndryshme, kemi një dokument që e deklaron veten në dy gjuhë njëherësh.
Pse ka rëndësi
Mospërputhja vetë është rrallë problemi kryesor. Problemi i vërtetë është ai që ajo zbulon: dikush e ka ndryshuar gjuhën e sajtit në një vend dhe e ka harruar në tjetrin.
Zakonisht kjo do të thotë se shablloni ka një vlerë të fiksuar diku — lang="en" i trashëguar nga tema origjinale — ndërsa përmbajtja është shqip. Atëherë pasoja e vërtetë nuk është mospërputhja, por fakti që lexuesit e ekranit e lexojnë shqipen me fonetikë angleze.
Për motorët, deklarimet kontradiktore janë sinjal i dobët dhe zakonisht shpërfillen në favor të analizës së vetë tekstit. Pra dëmi te renditja është i vogël.
Dëmi i vërtetë është te aksesueshmëria, dhe ai matet nga kontrolli i atributit lang, jo nga ky.
Si rregullohet
<!-- e drejtë: një burim i vetëm i së vërtetës -->
<html lang="sq">
<!-- hiqe: e hequr nga standardi -->
<meta http-equiv="content-language" content="en">Hapat:
- Mbaj vetëm `lang` te `<html>`. Hiq etiketën
http-equiv. - Nëse dërgon kokën `Content-Language`, sigurohu që përputhet.
- Gjeneroje vlerën nga gjuha aktuale, jo nga një konstante.
- Kontrollo shabllonin bazë të temës — aty rri zakonisht vlera e ngecur.
- Për faqe shumëgjuhëshe, kontrollo disa faqe të secilës gjuhë, jo vetëm faqen kryesore.
Si e mat ky mjet
InternationalSeoAnalyzer::checkLanguageConsistency() (services/InternationalSeoAnalyzer.php:135) lexon //html/@lang dhe //meta[@http-equiv="content-language"]/@content. Nëse të dyja ekzistojnë, i ndan te vija e parë dhe krahason kodet bazë (:148).
Kur nuk përputhen, jepet paralajmërim me −8 pikë (:60). Kur lang mungon krejt, jepet një paralajmërim i veçantë me −10 pikë (:53).
Çfarë NUK e mat
Krahasimi bëhet vetëm midis dy deklarimeve HTML. Koka HTTP Content-Language, e cila ka përparësi, nuk lexohet fare — ndonëse metoda e mëmë i merr kokat si parametër.
Kur etiketa http-equiv mungon — rasti i shumicës absolute të faqeve moderne, sepse ajo është e hequr nga standardi — kontrolli nuk krahason asgjë dhe kalon gjithnjë. Pra ky kontroll praktikisht nuk aktivizohet kurrë te faqe të shkruara sot.
Më e rëndësishmja: nuk krahasohet gjuha e deklaruar me gjuhën e vërtetë të tekstit. Një faqe krejt shqip me lang="en" dhe pa etiketë të dytë raportohet si plotësisht e rregullt. Kjo është pikërisht mospërputhja që ka rëndësi, dhe ajo nuk matet.
Kodi që e kryen matjen
services/InternationalSeoAnalyzer.php:135— InternationalSeoAnalyzer::checkLanguageConsistencyservices/InternationalSeoAnalyzer.php:60— Language Mismatch Detected