이 문서는 CSS 워킹 그룹이 후보 권고안 스냅샷으로 권고안 트랙을 이용해 공개한 것입니다.
후보 권고안으로 출판되었다고 해서 W3C 및 회원의 보증을 의미하지는 않습니다.
후보 권고안 스냅샷은 광범위한 검토를 받았으며,
구현 경험을 수집하기 위한 것이고,
워킹 그룹 구성원들이 구현에 대해 로열티 없는 라이선스를
약속합니다.
이 문서는 W3C 권고안이 되는 것을 목표로 하며,
추가 의견을 수집하기 위해 까지 후보 권고안 상태를 유지할
예정입니다.
피드백은 Github 이슈 등록(권장)으로 보내주세요.
제목에 명세 코드 “css-conditional”을 포함해 “ [css-conditional] …코멘트 요약… ” 형태로 작성해 주세요.
모든 이슈와 코멘트는 아카이브됩니다.
또는, (아카이브됨) 공개 메일링 리스트 www-style@w3.org로도
보낼 수 있습니다.
이 문서는 W3C 특허 정책 하에 운영되는 그룹에서 작성되었습니다.
W3C는 해당 그룹 결과물과 관련하여 제출된 공개 특허 공개 목록을
유지합니다.
해당 페이지에는 특허 공개 방법도 안내되어 있습니다.
만약 개인이 본인 지식으로 필수 청구권(Essential
Claim(s))이 포함된 특허를 알고 있다고 생각되면, W3C 특허 정책 6장에 따라 정보를
공개해야 합니다.
적합성 요구사항은 설명적 단언과 RFC 2119 용어의 조합으로 표현됩니다. 규범적 부분에서 “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL” 등의 키워드는 RFC 2119에 정의된 대로 해석되어야 합니다.
그러나 가독성을 위해 이 명세서에서는 이 단어들을 모두 대문자로 표기하지 않습니다.
이 명세서의 모든 텍스트는 명시적으로 비규범적, 예시, 참고로 표시된 섹션을 제외하고는 규범적입니다. [RFC2119]
이 명세서의 예시는 “for example(예를 들어)”로 시작하거나 class="example"와 같이 규범적 텍스트와
구분됩니다:
이것은 참고 예시의 한 예입니다.
참고 노트는 “Note”로 시작하며 class="note"로 규범 텍스트와 구분됩니다:
Note, 이것은 참고 노트입니다.
권고(advisement)는 특별한 주의를 환기하도록 스타일링된 규범 섹션이며, <strong class="advisement">로 구분됩니다: UA는
반드시 접근 가능한 대체 수단을 제공해야 합니다.
테스트
이 명세서의 내용과 관련된 테스트는 이와 같은 “테스트” 블록에 문서화될 수 있습니다.
이러한 블록은 모두 비규범적입니다.
스타일 시트가 이 명세서에 적합하려면, 이 모듈에서 정의된 문법을 사용하는 모든 문이 CSS 일반 문법과 각 기능의 개별 문법에 따라 유효해야 합니다.
렌더러가 이 명세서에 적합하려면, 스타일 시트를 적절한 명세서에 정의된 대로 해석하는 것 외에도, 이 명세서에서 정의된 모든 기능을 올바르게 파싱하고 문서를 그에 따라 렌더링해야 합니다. 단, UA가
기기 제한 때문에 문서를 올바르게 렌더링하지 못해도 UA가 적합하지 않은 것은 아닙니다. (예: UA가 단색 모니터에서 색상을 렌더링할 필요는 없음)
저작 도구가 이 명세서에 적합하려면, CSS 일반 문법과 각 기능의 개별 문법에 따라 문법적으로 올바른 스타일 시트를 작성하고, 이 모듈에 설명된 스타일 시트의 모든 다른 적합성 요구 사항을 충족해야
합니다.
부분 구현
작성자가 앞으로도 호환 가능한 파싱 규칙을 활용하여 대체 값을 지정할 수 있도록, CSS 렌더러는 반드시 지원하지 않는 at-rule, 속성, 속성 값, 키워드, 기타 구문
구조를 모두 무효로 취급(및 적절히 무시)해야 합니다. 특히, UA는 지원되지 않는 구성
값만 무시하고, 지원되는 값은 적용하는 식의 선택적 무시는 절대 금지입니다. 한 속성 선언에서 값 중 하나라도 무효(미지원 값)로 간주되면 CSS에서는 전체 선언을
무시해야 합니다.
불안정 및 독점 기능 구현
향후 안정적인 CSS 기능과의 충돌을 방지하기 위해, CSSWG는 모범 사례에 따라 불안정 기능과 독점 확장 구현을 권장합니다.
비실험적 구현
명세서가 후보 권고 단계에 도달하면, 비실험적 구현이 가능하며, 구현자는 명세서대로 올바르게 구현되었음을 입증할 수 있는 CR-level 기능에 대해 접두어 없는 구현을 릴리스해야 합니다.
CSS의 구현 간 상호운용성을 확립·유지하기 위해, CSS 워킹 그룹은 비실험적 CSS 렌더러에게 W3C에 구현 보고서(및 필요시 해당 테스트 케이스)를 제출한 후에만 CSS 기능에 대한 접두어 없는
구현을 릴리스할 것을 요청합니다. W3C에 제출된 테스트 케이스는 CSS 워킹 그룹의 검토 및 수정 대상이 됩니다.
이 명세서가 제안된 권고안 단계로 진전되려면, 각 기능에 대해 최소 두 개의 독립적이고 상호운용 가능한 구현이 있어야 합니다. 각 기능은 서로 다른 제품 집합에 의해 구현될 수 있으며, 모든 기능을 단일
제품이 구현할 필요는 없습니다. 이 기준에 대해 다음 용어를 정의합니다:
독립적(Independent)
각 구현은 서로 다른 당사자에 의해 개발되어야 하며, 다른 적합 구현에서 사용된 코드와 공유, 재사용, 파생될 수 없습니다. 이 명세서의 구현과 무관한 코드 섹션은 이 요구 사항에서 제외됩니다.
상호운용성(Interoperable)
공식 CSS 테스트 스위트의 해당 테스트 케이스를 통과하거나, 해당 구현이 웹 브라우저가 아닌 경우 동등한 테스트를 통과하는 것. 테스트 스위트의 모든 관련 테스트는 해당 UA가 상호운용성을
주장하려면 동등한 테스트가 생성되어야 합니다. 또한 해당 UA가 상호운용성을 주장하려면, 동일한 방식으로 동등한 테스트를 통과할 수 있는 추가 UA가 하나 이상 있어야 하며, 상호운용성 목적을
위해 동등한 테스트는 동료 검토(peer review)를 위해 공개되어야 합니다.
구현(Implementation)
다음을 만족하는 사용자 에이전트:
명세서를 구현한다.
일반 대중에게 제공된다. 구현은 출시 제품 또는 기타 공개 버전(예: 베타 버전, 프리뷰 릴리스, "나이트리 빌드")일 수 있다.
출시되지 않은 제품 릴리스는 해당 기능을 최소 한 달 이상 구현하여 안정성을 입증해야 한다.
실험적이지 않다(즉, 테스트 스위트 통과만을 위해 특별히 설계된 버전이 아니며, 앞으로 정상적으로 사용될 버전이어야 한다).