프로그래밍/프로그래밍

[웹호환성]웹 호환성 검사 오류 해결 방법

guitarhero 2017. 10. 26. 10:07
728x90

웹호환성 검사(https://validator.w3.org/)


웹호환성 검사시 

1. general entity "****" not defined and no default entity 이런 오류가 나오는데 

이것은 &을 이용해서 파라미터 사용해서 그렇다 & 로 바꿔 주면 끝 ㅠ

예) www.naver.com?searchword=바보&category=생활 (이건 없는 url이다 내가 그냥 만든거다)

=> www.naver.com?searchword=바보&category=생활(이렇게 변경하면 된다.) 


작업하면서 추후 추가 오류 해결방법 남기겠다. 


2. OMITTED 어쩌고 저쩌고 

이건 뭘빠트렸다는 건데 태그를 안닫았을때 나는 오류이다 

<img src="good.jpg">

=><img src="good.jpg"/>(이렇게 self close하거나 </img>태그로 닫아주면 된다.)



3. document type does not allow element "div" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag

이건 

to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").

위 메시지 처럼 블럭레벨 엘리먼트를 인라인 엘리먼트 안에 넣었다고 오류를 뱉어 내는건데 

이건 수정할때 주의 해야 할것이 css가 깨질수 있기 때문에 확인하면서 수정해야 한다. 

<p><table><div>처럼 block레벨밑에 <span>이나 <a>tag가 있어야 하나보다 

보통 inline tag 밑에 block tag를 inline으로 변경하면 레이아웃 깨지는 것은 

css에 display:block; 을 추가함으로써 해결할 수 있다. (inline을 블럭으로 보여주라는 거니까 허허허허)


4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 관련 에러

아래 두개의 메타중에 하나만 써야 하고

 <meta charset="utf-8" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


하나의 페이지에 같은 메타가 두개 들어있어도 호환성에서 오류가 난다. 

예를 들어 레이아웃 jsp 와 본문 jsp를 분리해서 사용했다면 둘중에 하나에만 메타 설정이 있으면 된다. 


5.  Element object is missing one or more of the following attributes: datatype.

object 객체로 flash를 불러올때 기존에는 <object name="flash" classid="clsid:aas9f0a9as9" codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">

<param name="movie" value="fla/fla.swf"></param>

<param name="wmode" value="transparent" />

</object>

이렇게 사용했다면 html5에서는 무조건 하나의 data속성과 type속성이 필수 값이다. 

그래서 object 의 속성으로  넣어주어야 한다. 

<object name="flash" data="fla/fla.swf" type="application/x-shockwave-flash">

</object>

그리고 classid나 codebase속성은 삭제해줘야 한다. 

이렇게 수정해 주면 해결된다. 

728x90