부록 K: SVG 1.1과의 변경 사항
목차
K.1. 편집상의 변경
K.2. 주요 변경 사항
K.2.1. 전체 문서
K.2.2. 개념 챕터(SVG 1.1 한정)
K.2.3. 적합성 기준 챕터(부록, SVG
1.1)
K.2.4. 렌더링 모델 챕터
K.2.5. 기본 데이터 타입 및 인터페이스 챕터
K.2.6. 문서 구조 챕터
K.2.7. 스타일링 챕터
K.2.8. 기하 속성 챕터(SVG 2 한정)
K.2.9. 좌표계, 변환 및 단위 챕터
K.2.10. 경로 챕터
K.2.11. 기본 도형 챕터
K.2.12. 텍스트 챕터
K.2.13. 임베디드 콘텐츠 챕터(SVG 2
한정)
K.2.14. 페인팅 챕터
K.2.15. 색상 챕터(SVG 1.1 한정)
K.2.16. 페인트 서버 챕터(SVG 1.1에서는
그라디언트 및 패턴)
K.2.17. 클리핑, 마스킹 및 합성 챕터(SVG
1.1 한정)
K.2.18. 필터 효과 챕터(SVG 1.1
한정)
K.2.19. 스크립팅 및 상호작용 챕터(SVG
1.1에서는 분리 챕터)
K.2.20. 링크 챕터
K.2.21. 스크립팅 챕터(SVG 1.1)
K.2.22. 애니메이션 챕터(SVG 1.1
한정)
K.2.23. 폰트 챕터(SVG 1.1 한정)
K.2.24. 메타데이터 챕터(SVG 1.1
한정)
K.2.25. 하위 호환성 챕터(SVG 1.1
한정)
K.2.26. 확장성 챕터(SVG 1.1 한정)
K.2.27. 문서 타입 정의 부록(SVG 1.1
한정)
K.2.28. SVG 문서 객체 모델(DOM)(SVG
1.1 한정)
K.2.29. IDL 정의 부록
K.2.30. Java 언어 바인딩 부록(SVG 1.1
한정)
K.2.31. ECMAScript 언어 바인딩
부록(SVG 1.1 한정)
K.2.32. 구현 노트 부록(SVG 1.1에서는 구현
요구사항)
K.2.33. 접근성 지원 부록
K.2.34. 국제화 지원 부록(SVG 1.1 한정)
K.2.35. SVG 파일 크기 최소화 부록(SVG
1.1 한정)
K.2.36. SVG 문서 애니메이션
부록(SVG 2 한정)
K.2.37. 참고문헌 부록
K.2.38. 요소, 속성, 그리고
속성(Property) 색인 부록
K.2.39. IDL 색인 부록(SVG 2
한정)
K.2.40. 기능 문자열(SVG 1.1 한정)
이 부록은 정보 제공용이며, 규범적인 내용이 아닙니다.
이 부록은
SVG 1.1 Second Edition 권고안 이후에 이루어진 변경 사항을 요약합니다.
최초의 SVG 2 후보 권고안 이후의 변경 사항은 강조되어 있습니다.
K.1. 편집상의 변경
명세의 가독성을 높이기 위해 여러 스타일 측면에서 변경이 이루어졌습니다. 주요 변경 사항은 다음과 같습니다:
현행 CSS 명세와 유사한 스타일링을 사용하도록 변경하고, XSL-FO에 관한 언급을 제거함.
작업 그룹에서 포함하기로 결정한 기능 및 해당 기능을 추진하기로 한 구성원이 있는 기능에 대해 명세에 주석을 추가함.
SVG가 XML뿐만 아니라 HTML에서도 사용할 수 있음을 강조하는 변경.
규범적 내용이 다른 명세로 이동되었거나 폐기된 챕터(필터, 클리핑 및 마스킹, 애니메이션, 폰트, 색상) 삭제.
(정보 제공용) 개념 및 하위 호환성 챕터, 다수의 부록 삭제.
여러 챕터를 병합 및 재구성:
(규범적) 적합성 부록을 챕터로 승격.
페인팅 챕터에서 'display' 및 'visibility' 속성 섹션을 렌더링 모델 챕터로 이동.
클리핑, 마스킹, 합성 챕터의 나머지 섹션을 렌더링 모델 챕터로 이동.
SVG 1.1 메타데이터 챕터를 문서 구조 챕터에 병합.
문서 구조 챕터에서 'image' 요소 정의를 새로운 임베디드 콘텐츠 챕터로 이동.
SVG 1.1 확장성 챕터의 외부 네임스페이스와 프라이빗 데이터 섹션을 문서 구조 챕터로 이동.
기하 속성 챕터를 신설하고, 관련 정의를 기본 도형 및 경로 챕터에서 이동.
임베디드 콘텐츠 챕터를 신설하고, SVG 1 확장성 챕터의 모든 내용을 병합.
SVG 1.1 스크립팅 및 상호작용 챕터를 병합.
변경 목록을 정리하고 누락된 변경사항 추가, 최초 후보 권고안 이후의 변경사항에 대한 이슈 토론 링크 추가.
수정사항
용어 "user coordinate system"(이전에는 동의어 "local coordinate system"도 사용됨)을 일관되게 사용.
이슈 토론
수정사항
K.2. 주요 변경 사항
위에 명시된 편집상의 변경 외에도, 다음과 같은 주요 추가, 변경 및 삭제가 이루어졌습니다.
K.2.1. 전체 문서
SVG DTD에 대한 참조 삭제함.
IDL을 Web IDL 문법으로 업데이트.
모든 리스트 인터페이스에 "length" 속성과 인덱스 기반 속성 접근 기능 추가.
<angle> 타입 정의 삭제 및 CSS3-values
참조.
모든 좌표 타입을 <length> 로 변경하여 css3-values 참조 준비.
‘script ’ 요소를 모든 요소의
콘텐츠 모델에 추가.
initialize, appendItem, replaceItem, insertItemBefore 메서드를 변경하여, 이미 다른 리스트에 존재하는 리스트 아이템을 삽입할 때 복사하도록 수정.
‘image ’ 및
‘script ’ 요소에
crossorigin 속성 추가, CORS-enabled fetch 알고리즘에서 사용.
NoInterfaceObject 대신 믹스인(mixin) 사용.
이슈 토론
수정사항
K.2.2. 개념 챕터(SVG 1.1 한정)
리소스 문서로 처리되는 문서에서는 애니메이션이 실행되지 않음.
부록을 챕터로 승격함.
SVG 통합 명세에서 처리 모드 관련 내용을 통합함.
SVG 교차 참조의 다양한 유형에 필요한 처리 모드 정의, HTML/CSS의 유사 참조에 대해 제안된 처리 모드도 명시.
(SVG 통합 명세의 "referencing modes" 섹션 대체)
적합성 클래스 전체를 업데이트 및 재구성하여, 명세의 다른 부분과 기타 명세의 변경에 맞게 일치시킴.
SVG 뷰어 는 적합성 목적으로 user
agent / SVG user agent 임을 명확히 하며,
해당 정의를 문서 구조 챕터에서 이곳으로 이동함.
비규범적 고정밀 그래픽 생성 방법 제안 섹션을 구현 노트 부록으로 이동함.
ICC 및 CSS Color 4에 대한 정보 제공용 참조 추가
이슈 토론
수정사항
K.2.4. 렌더링 모델 챕터
렌더링 모델을 합성 및 블렌딩 명세 를 참조하도록 업데이트함.
렌더링 및 렌더링 가능한 요소 관련 새로운 정의 추가.
display 및 visibility 관련 섹션을 이 챕터로 이동함.
z-index를 이 챕터로 이동. 비규범적 텍스트는 삭제하고 예제만 유지.
이슈 2 해결 - knock-out 참조 삭제.
이슈 3 해결 - 요소와 그룹의 렌더링 방식 설명을 새로 작성함.
이슈 4 해결 - 각 페인트 서버 타입을 직접 언급하지 않음.
이슈 6 해결 - 변경 없음.
클리핑, 마스킹, 합성 챕터를 이 챕터로 병합(이슈 7 병합 과정에서 해결).
'Parent Compositing' 섹션을 업데이트하여 각 참조 방식이 어떻게 합성되는지 명확히 명시.
SVG 루트 및 foreignObject는 더 이상 User Agent 스타일시트에서 overflow:hidden 아님.
overflow:auto는 경우에 따라 클리핑과 스크롤 바 표시가 가능함.
overflow:scroll은 svg 요소에 스크롤 바 표시 가능.
초기 클리핑 경로 정의 삭제.
use 요소의 섀도 DOM 모델을 반영하여 렌더링 요구사항 업데이트.
K.2.5. 기본 데이터 타입 및 인터페이스 챕터
SVGMatrix 의 모든 출현을
DOMMatrix 또는 DOMMatrixReadOnly 로
대체함.
SVGRect 의
모든 출현을 DOMRect
또는 DOMRectReadOnly 로 대체함.
SVGPoint 의 모든 출현을
DOMPoint
또는 DOMPointReadOnly 로 대체함.
SVGStylable 및 SVGLangSpace 인터페이스를 삭제하고, 모든 멤버를 SVGElement 에 이동함.
SVGLocatable 및 SVGTransformable을 SVGGraphicsElement 로 변경,
이 인터페이스는 SVGElement 를 직접 상속함.
SVGGraphicsElement 인터페이스 추가.
isPointInFill 및 isPointInStroke 메서드를 갖는 SVGGeometryElement 인터페이스 추가.
SVGExternalResourcesRequired 인터페이스 삭제.
SVGGraphicsElement 에 getStrokeBBox
추가, 타이트한 스트로크 경계 박스를 얻을 수 있도록 함.
SVGElement 의 viewportElement와
ownerSVGElement를 nullable로 변경함.
SVGElement 의 getPresentationAttribute 연산 및
SVGColor, SVGICCColor 인터페이스 삭제.
SVGElement 에 focus 및 blur 연산과 tabIndex 속성
추가.
activeElement 속성을 Document 에 추가.
SVGElement 가 HTML의 GlobalEventHandlers
인터페이스를 포함하도록 변경.
SVGGraphicsElement 에서
getStrokeBBox를 삭제하고, getBBox 를 사전(dictionary) 인자를
받아 반환되는 경계박스에 포함되는 요소를 제어할 수 있도록 확장함.
<length> , <angle> , <number> , <integer> 에 선행 및 후행 공백 허용.
공백에 form feed(U+000C) 포함, CSS 및 HTML과 일치하도록 변경.
CSS Values and Units에서 이미 정의된 기본 데이터 타입 삭제.
색상 키워드 목록 삭제. 목록은 CSS Colors 3의 일부로 규범적으로 참조됨.
여러 리스트 타입 속성에서 단일 후행 콤마-wsp 허용.
SVGElement 인터페이스에서 xmlbase, xmllang,
xmlspace 속성 삭제.
SVGViewSpec 인터페이스 삭제.
SVGElement 의 style IDL 속성 삭제, CSSOM에서 정의하므로
제거.
SVGGraphicsElement 의
getTransformToElement 메서드 삭제.
최상위 svg 요소 에서 getCTM이 동작해야 함을 정의하고, 포함해야 하는 변환(transform)을
명시함.
속성 반영(attribute reflection)을 더 상세하게 정의, SVG DOM 객체의 liveness에 미치는 영향 포함.
모든 인터페이스의 animVal IDL 속성은 이제 baseVal을 alias함.
SVGElement 에 dataset IDL 속성 추가.
pathLength 속성,
getTotalLength() ,
getPointAtLength() 메서드를
SVGPathElement에서 SVGGeometryElement로 이동함.
wsp와 comma-wsp 정의를 path 문법으로 이동, 해당 문법만 명세에 EBNF 문법으로 존재함.
K.2.6. 문서 구조 챕터
SVGSVGElement 의 IDL 업데이트,
getIntersectionList 와 getEnclosureList 의 referenceElement 인자를
nullable로 지정.
SVGSVGElement 인터페이스의 suspendRedraw
, unsuspendRedraw
,
unsuspendRedrawAll
메서드 사용 중단(deprecated).
‘externalResourcesRequired’ 속성을 삭제함.
‘image ’ 의 width 및 height 속성에 'auto' 값 사용 가능하도록 함.
‘use ’ 가 전체 문서를 참조할 수 없던
제한 해제.
‘desc ’ 와 ‘title ’ 요소에 ‘lang ’ 속성 추가.
WAI-ARIA 속성에 대한 섹션 추가.
최상위 svg 요소 에 CSS 변환(transform)이 적용되어도 currentScale 또는 currentTranslate 에는 영향을 주지 않음을 명확히 함. ‘svg ’ 요소가 최상위 svg 요소 가 아닐 때 반환값도 정의함.
rootElement 속성 사용 중단(deprecated).
루트 ‘svg ’ 요소의 이벤트 핸들러
content 속성과 IDL 속성을 Window 에서 발생하는 이벤트에 대응하도록
정의(HTML의 body
와 유사).
‘image ’ 요소를 임베디드 콘텐츠 챕터 로 이동함.
SVGElementInstance
및 SVGElementInstanceList
인터페이스와 SVGUseElement 인터페이스의 관련 속성 삭제.
‘use ’ 요소의 이벤트 흐름(event
flow)을 Shadow DOM 명세를 따르도록 변경.
‘switch ’ 요소가 ‘script ’ 요소의 처리에 영향을
주지 않음을 명확히 함.
‘svg ’ 요소의 ‘width’ 및 ‘height’ 속성을 표현 속성으로 변경, 초기값을 auto 로 변경.
‘svg ’ 요소에서 baseProfile , version 속성 삭제.
forceRedraw 메서드 사용 중단(deprecated), 호출해도 효과 없음.
deselectAll 메서드를 SVGSVGElement 인터페이스에 정의, Selection API 기준으로 동작하며 동시에 사용
중단(deprecated)됨.
‘switch ’ 요소가 ‘style ’ 요소의 처리에 영향을 주지
않음을 명확히 함.
getIntersectionList 및 getEnclosureList 메서드가 shadow tree 요소를 반환하지
않음을 명확히 함.
requiredFeatures 속성 삭제.
SVGSVGElement 의 currentView 및
useCurrentView 속성 삭제.
svg 네임스페이스에서 알 수 없는 요소를 처리하기 위한 SVGUnknownElement 추가.
네임스페이스 없이 ‘lang ’ 속성 추가.
SVGSVGElement 에서 viewport
속성 삭제.
xml:base 속성 삭제.
‘discard’ 요소를 별도의 SVG 애니메이션 모듈로 분리함.
모든 SVG 요소에서 커스텀 data 속성 허용.
‘desc ’ 및 ‘title ’ 설명을 ARIA 및 접근성
매핑을 반영해 재작성.
SVG 문서 내에서 메타데이터 요소를 구조화하는 방법에 대한 권고 삭제.
Document 인터페이스 객체의 SVGDocument 속성 요구사항 삭제.
‘switch ’ 의 자손 요소 중
‘systemLanguage ’ 속성이 있는 요소는 SMIL
'allowReorder' 속성 정의에 따라 재정렬되어야 함.
‘tspan ’ 및 ‘textPath ’ 를 그래픽 요소 범주에 추가. 필터, 마스크 등 적용 가능.
요소 역할(role) 섹션을 최신 SVG 접근성 API 매핑 명세에 맞게 업데이트함.
필요하지 않더라도 사전 정의된 콘텐츠는 defs 요소에 넣으라는 권고를 완화함.
defs, title, desc, metadata, symbol 요소의 표시(display) 동작을 사용자 에이전트 스타일로 정의하도록 변경.
symbol 요소에 x, y, width, height 표현 속성 허용, 중첩된 svg 요소와 동일한 렌더링 효과를 가짐.
symbol의 ‘refX ’ 및 ‘refY ’ 에 대해 하위
호환성 있는 기본 동작 명시(마커와는 다름); 키워드는 마커와 동일한 동작을 갖는다고 명확히 함.
use 요소의 섀도 트리를 shadow DOM 명세에 맞게 재정의,
SVG 2의 다른 변경사항과 통합 및 관련 동작을 명확히 하여 다음을 포함함:
x/y/width/height가 표현 속성이며, 레이아웃에 독특한 영향을 줌
width, height의 0값은 복제된 svg/symbol의 사용된 값에만 의미가 있음; 음수는 파싱 오류
use 요소가 이제 SVG 컨테이너의 유효한 자식이 될 수 있는 모든 요소를 참조 가능(그래픽 요소만 아님)
SVGUseElementShadowRoot 인터페이스를 ShadowRoot의 확장으로 정의, use 요소 섀도 트리에 필수적으로 사용
shadow DOM 및 use 요소 관련 용어 다수 정의, DOM 표준 참조
조건부 처리 실패 분기(branch)에 있더라도 use 요소 섀도 트리 생성(기존 display:none 관련 가이드와 일치)
섀도 트리 내 요소 인스턴스는 읽기 전용을 제외하면 일반 Element 노드로 보여야 함.
기존 SVGElementInstance 객체에 정의된 속성은 이제 SVGElement를 확장하는 믹스인 인터페이스로 정의
복제된 콘텐츠 내 URL 참조는 소스 파일 기준으로 절대화됨을 명확히 함.
교차 참조가 변경될 때(선언적 애니메이션 포함) 섀도 트리가 폐기됨(원본/애니메이션 섀도 트리 병렬 보존 없음).
순환 참조는 원을 연결할 use 요소의 렌더링만 차단하며, 자신의 호스트는 차단하지 않음.
x/y가 use 요소에서 변환으로 동작하며, userSpaceOnUse 그래픽 효과에 미치는 영향에 대한 경고 추가.
use 요소의 width/height가 svg/symbol에 미치는 방식 재정의, 기하 속성 및 auto 값과 일치시킴.
다른 재사용 그래픽(svg/symbol 아님)의 경우, 섀도 요소는 use 요소의 좌표계에서 레이아웃됨(백분율 길이 해석 포함).
섀도 트리 내 스타일 복제 방식을 shadow DOM의 스타일 스코핑과 일치시키도록 재정의, 스타일시트도 섀도 DOM 스코프에 복제 필요.
이 방식이 SVG 1.1 호환 사용자 에이전트와 다른 스타일을 초래하는 사례에 대한 경고 및 예시 추가.
visibility 속성의 상속 동작에 관한 예시 추가.
use 요소 복제본 내 멀티미디어는 동일 원본의 모든 인스턴스와 동기화되어야 함.
섀도 트리가 애니메이션에서 호스트 문서와 타임라인을 공유함을 명확히 함.
Web Animations API 애니메이션 복제를 나타내는 ShadowAnimation 인터페이스 정의
WAAPI 애니메이션을 use 요소 섀도 트리 내 요소 인스턴스에 직접 적용하는 것 금지.
SMIL 스타일 애니메이션의 복제 및 전파 방식 정의; 참조 그래픽에 영향을 주는 애니메이션 요소는 referenced 요소의 자손이 아니더라도 섀도 트리에 복제해야 함.
다수의 트리에서 동일 ‘id ’ 가
있을 때 이벤트 기반 애니메이션 요소 트리거 및 href 속성의 동작 정의.
use 요소 섀도 트리의 이벤트 처리가 shadow DOM 명세의 이벤트 재타겟팅 규칙을 따르도록 요구.
참조 그래픽에서 요소 인스턴스로 이벤트 리스너 복제가 스크립트, 이벤트 속성 모두에 적용됨을 명확히 함.
use 요소 섀도 트리의 요소에 이벤트 리스너 직접 추가 금지.
use 요소와 symbol이 기본적으로 graphics-object 역할(role)에 매핑되어 섀도 콘텐츠가 접근성에 포함됨.
SVGSymbolElement 인터페이스가 SVGGraphicsElement를 상속하도록 변경, 렌더링된 symbol 요소 인스턴스가 그래픽 요소의 모든 동작(getBBox 등)을
가짐.
SVGUseElement 인터페이스에 (animated)instanceRoot 속성 복원.
‘a ’ 요소의 역할 매핑을 실제로 유효한
링크인지 여부에 따라 다르게 지정.
ARIA 상태 및 속성(attribute)을 애니메이션 가능하도록 표시함.
‘id ’ 값 요구사항을 HTML과 일치시키도록
업데이트, XML 문서 유효성에 대한 추가 경고 포함.
외부 네임스페이스 및 프라이빗 데이터 섹션을 이 챕터로 이동하고, 새로운 교차 참조와 노트 추가.
K.2.7. 스타일링 챕터
‘contentStyleType’ 속성 삭제.
SVGStyleElement 가 LinkStyle 을 구현하도록
변경함.
사용자 에이전트 스타일시트 업데이트 - 내부 svg 요소와 foreignObject 요소에 더 이상 overflow:hidden을 적용하지 않음.
User Agent 스타일시트에서 overflow:hidden이 적용되는 요소 목록에 hatch 추가.
루트 svg 요소 및 foreignObject 요소의 자식 svg 요소를 제외한 모든 요소에 대해 transform-origin의 기본값을 '0 0'으로 지정함.
챕터 전체를 더욱 간결하게 대폭 재작성함.
HTML ‘link’ 요소는 외부 스타일시트를 반드시 로드해야 함을 정의함.
표현 속성이 있는 속성의 정확한 집합, 속성 이름(표현 속성 이름이 속성 이름과 다를 경우), 허용되는 요소를 명확히 명시함.
SVG 2 규격을 준수하는 사용자 에이전트가 반드시 지원해야 하는 다른 명세에서 정의된 속성 목록 추가.
사용자 에이전트 스타일시트 규칙 추가, 더 이상 사용하지 않는 ‘xml:space’ 속성을 white-space 속성에 매핑함.
‘text ’ 요소에서 @font-face
규칙과 ::first-letter & ::first-line 가상 요소를 반드시 지원해야 함.
HTML 문서 내의 모든 SVG 및 HTML 스타일시트가 인라인 SVG 콘텐츠를 포함한 모든 콘텐츠에 적용되어야 함을 요구함.
모든 svg 네임스페이스 요소에 표현 속성 허용.
style 요소의 표시 동작을 사용자 에이전트 스타일로 정의하도록 변경.
절대 렌더링되지 않는 요소를 제어하는 !important 사용자 에이전트 스타일 규칙 추가 및 그 영향에 대한 설명 노트 추가.
인터랙티브 사용자 에이전트는 :focus 및 ::selection 스타일을 반드시 포함해야 함.
명세의 다른 섹션과 일치하도록 표현 속성 표를 정리함:
‘mask ’ 를
x/y/width/height 속성을 표현 속성으로 처리하는 요소에서 제거,
‘use ’ 및 ‘symbol ’ 추가;
애니메이션 요소 는 fill 을 표현 속성으로 처리하는 요소에서 제외;
‘textPath ’ 에서 d 를 표현 속성에서 제거;
gradientTransform과 patternTransform에 대한 논의를 주 표로 병합.
clip 속성 지원 요구사항 삭제.
HTML 및 CSS와 일치하도록 링크에 포인터 커서를 적용하는 사용자 에이전트 스타일시트 요구사항 추가.
이슈 토론
수정사항
K.2.8. 기하 속성 챕터(SVG 2 한정)
‘pattern ’ 및 ‘filter ’ 을 x 및 y 속성이 적용되는 요소에서 제거함.
width 및
height 속성의 auto 값은 해당
속성이 적용되는 SVG 요소에서 0 으로 계산됨을 정의함.
auto는 ‘svg ’ 요소의 width와
height에 대해 100%와 같으며, 이미지에는 자동 사이징을 의미함.
‘mask ’ 를 width,
height가 사이즈 속성인 요소 목록에서 제거함.
width, height 사이즈 속성은 해당 max/min 속성과 함께 제약될 수 있음을 명확히 함.
K.2.9. 좌표계, 변환 및 단위 챕터
SVGMatrix .skew{X,Y}가 잘못된 값에
대해 예외를 발생시키도록 함.
SVG Tiny 1.2에서 가져온 경계 박스 관련 개선된 문구 및 요소의 경계 박스를 계산할 수 있는 알고리즘 추가.
위치가 없는 요소의 경계 박스는 (0,0)에 있다고 정의함.
‘preserveAspectRatio ’ 에서 defer
키워드 제거.
'current viewport' 정의 추가. SVG viewport는 SVG 요소가 생성하는 모든 viewport를 의미하도록 변경.
non-scaling-size , non-rotation ,
fixed-position 값을 vector-effect 에 추가.
좌표계 레이아웃 요구사항을 필수로 변경.
vector-effect 는 3d 렌더링 컨텍스트 내에서는 효과 없음.
CSS Default Sizing Algorithm을 참조하여 CSS 컨텍스트에서 SVG 사이즈 정의.
백분율은 지정된 viewBox의 너비와 높이를 기준으로 한다는 점을 명확히 함.
구현되지 않은 vector-effect 옵션은 at-risk로 표시함.
bounding box 알고리즘이 "clipped" 플래그가 설정된 경우 overflow 및 clip 속성의 효과를 포함하도록 변경.
K.2.10. 경로 챕터
백분율 거리 값이 ‘pathLength ’ 가 0이어도 영향을 받지 않음을 명확히
함.
이슈 토론
수정사항
구현 노트 섹션을 논리적 하위 섹션으로 재구성(이전에는 구현 노트 부록에 있던 범위 초과 arc 파라미터 섹션 포함).
수정사항
K.2.11. 기본 도형 챕터
K.2.12. 텍스트 챕터
‘textLength ’ 의 초기값 명확화,
반영된 IDL 속성에 미치는 영향에 대한 노트 추가.
K.2.13. 임베디드 콘텐츠 챕터(SVG 2 한정)
이 챕터를 추가하였으며, 새로운
‘video ’ , ‘audio ’ , ‘iframe ’ , ‘canvas ’ ,
‘source’ 및 ‘track’
요소를 포함하며, 이들은 동등한 HTML 요소와 거의 동일하게 동작합니다.
HTML의 임베디드 콘텐츠 요소의 SVG 복제본을 삭제하고, 대신 SVG 컨테이너 요소 내에서 HTML 네임스페이스의 해당 요소를 사용할 수 있도록 허용하였습니다.
SVG 문서가 ‘image ’ 요소에
의해 참조될 때 clip 및 overflow 를 무시해야 한다는 요구사항을 삭제하였습니다.
이미지의 높이와 너비에 "auto" 값을 허용하며, 이미지 파일의 고유 치수나 종횡비로부터 결정됩니다.
이미지 및 foreignObject의 사이즈 지정이 CSS 및 기하 속성들과 일관되게 동작하도록 명확히 하였으며;
임베디드 HTML 요소가 x , y , width , height 기하 속성으로 위치 지정할 수 있도록 하였습니다.
object-fit 및
object-position
속성이 임베디드 HTML 요소에 적용됨을 명확히 하였으며;
‘image ’ 에는 정의되지 않았다는
경고 노트 추가.
"외부 네임스페이스 및 프라이빗 데이터" 섹션을 문서 구조 챕터로 이동하였습니다.
더 이상 유지되지 않는 Resource Priorities 명세 대신, 작업 중인 Resource Hints 명세를 참조하도록 업데이트하였습니다.
모든 임베디드 요소에 대한 통합 레이아웃 모델을 정의하였으며,
‘image ’ 에 대한 object-fit 및 object-position 속성의
동작도 포함함.
K.2.14. 페인팅 챕터
stroke 속성 설명에 더 많은 세부 사항을 추가하고, 스트로크의 정확한 형태를 정의하는 알고리즘을 추가하였습니다.
paint-order 속성 추가.
color-interpolation-filters 속성을 필터 효과 명세로 이동함.
context-fill 및 context-stroke 페인트 값 추가.
<paint> 값 및 마커 속성에 child 키워드와
<child-selector> 값을 허용하여 ID 없이 참조할 수 있도록 지원함.
vector-effect 속성의 non-scaling 에 대한 규범적 정의를 SVG 2에 포함시킴.
stroke-linejoin 에 arcs 값을 추가함.
‘orient ’ 속성에 'auto-start-reverse' 값을 ‘marker ’ 요소에 추가함.
SVGPaint 인터페이스를 삭제함.
'z-index' 속성 추가(이후 삭제됨).
일부 새로운 마커 및 스트로크 관련 기능을 SVG Markers 및 SVG Strokes 명세로 분리함.
<child-selector> 페인트 값 삭제.
'buffered-rendering' 속성 삭제하고, 'will-change'
속성에 대한 간략한 설명으로 대체함.
child(<integer>) 페인트 값을 추가하여 <child-selector>가 의도했던 사용 사례를 지원함.
길이가 0인 모든 부분 경로(열림/닫힘 상관없이)는 stroke-linecap 속성에 따라 렌더링됨을 명확히 함.
모든 도형 에 마커 허용.
context-stroke와 context-fill 설명을 명확히, 특히 use 요소 섀도 콘텐츠에 대해 추가함.
marker 요소의 표시 동작을 사용자 에이전트 스타일로 정의하도록 변경함.
[최근 WD 이후] fill 및 stroke 에 여러 페인트
값 허용하는 변경을 롤백함.
'markable elements' 범주 삭제.
K.2.15. 색상 챕터(SVG 1.1 한정)
이 챕터를 삭제하고, CSS 색상 명세를 규범적으로 참조함.
K.2.16. 페인트 서버 챕터(SVG 1.1에서는 그라디언트 및 패턴)
solidcolor 요소와 그 두 속성 solid-color, solid-opacity를 SVG Tiny 1.2에서 가져와서 추가함('solidColor'를 'solidcolor'로 이름
변경).
‘radialGradient ’ 요소에 ‘fr ’
속성 추가, 초점 원의 반지름을 지정할 수 있게 함.
메시 그라디언트에 대한 섹션 추가, mesh, meshrow, meshpatch 요소 정의('meshGradient'를 'mesh', 'meshRow'를 'meshrow',
'meshPatch'를 'meshpatch'로 이름 변경).
hatch에 대한 섹션 추가, hatch와 hatchpath 요소 정의('hatchPath'를 'hatchpath'로 이름 변경).
'mesh' 요소의 ‘gradientTransform’ 과 'hatch' 요소의 ‘hatchTransform’ 을 ‘transform’ 으로 이름 변경.
페인트 서버 요소의 표시 동작을 사용자 에이전트 스타일로 정의하도록 변경.
페인트 서버 템플릿 교차 참조의 공통 처리 정의,
외부 파일 참조 허용,
복제된 자식 콘텐츠를 위한 use 요소 섀도 DOM 모델 사용,
title 및 desc가 자식 복제에 미치는 영향의 일관된 행동 정의,
각 요소마다 템플릿에서 파생되는 속성을 명확히 정의.
표현 속성처럼 보이지만 실제로는 아닌 속성에 대한 경고 노트 추가.
K.2.17. 클리핑, 마스킹 및 합성 챕터(SVG 1.1 한정)
SVG는 이제 CSS 마스킹[css-masking-1 ] 명세를 참조함.
클리핑/마스킹 속성과 요소 정의 삭제.
클리핑/마스킹에 대한 간략 소개를 유지하고 CSS 마스킹에 대한 참조 추가함.
합성 및 블렌딩 명세 참조 추가. 단순 알파 합성은 필수임.
html에 인라인된 최상위 svg 요소에 overflow 속성 준수해야
함.
클리핑, 마스킹 및 합성 챕터를 렌더링 모델 챕터로 병합함.
K.2.18. 필터 효과 챕터(SVG 1.1 한정)
K.2.19. 스크립팅 및 상호작용 챕터(SVG 1.1에서는 분리 챕터)
‘tabindex’ 속성 추가.
'cursor element' 요소의 'cursor/href' 속성 정의를 수정하여 CSS 형태가 아닌 URL을 받도록 함.
pointer-events 에 bounding-box 키워드 추가.
SVGLoad, SVGAbort, SVGError, SVGUnload를 각각 load, abort, error, unload로 대체함.
구조적으로 외부 요소 와 최상위 svg 요소 만 load 이벤트를 발생시켜야 함을 요구.
SVGResize 및 SVGScroll을 각각 resize, scroll로 대체함.
DOMActivate 삭제.
DOMFocusIn 및 DOMFocusOut을 각각 focusin, focusout으로 대체하고 blur 이벤트 추가.
키보드 이벤트 추가.
mutation 이벤트 삭제.
SVGZoomEvent 삭제.
섀도 DOM 콘텐츠가 포커스 가능하며 상호작용 가능함을 명확히 함.
script 요소의 표시 동작을 사용자 에이전트 스타일로 정의하도록 변경.
cursor 요소를 폐기(deprecated)로 표시하고, cursor 설명을 업데이트함.
K.2.20. 링크 챕터
‘view ’ 의 콘텐츠 모델에 애니메이션 요소 추가.
Media Fragments 명세에서 정의된 프래그먼트 식별자를 통해 SVG 리소스에 링크할 수 있는 기능 추가.
‘xlink:type’ , ‘xlink:role’ , ‘xlink:arcrole’ , ‘xlink:show’ , ‘xlink:actuate’ 속성 삭제.
‘xlink:href ’ 속성 사용
중단(deprecated), 네임스페이스 없는 ‘href’ 사용 권장.
‘xlink:title ’ 속성
사용 중단(deprecated), 자식 ‘title ’ 요소 사용 권장.
SVG view 프래그먼트에서 공백 허용.
"pixel:" 및 "percent:" 공간 미디어 프래그먼트 해석 방식 정의.
‘view ’ 요소로의 링크가 가장 가까운
상위 ‘svg ’ 요소에 암시적 view
box 변환을 일으키지 않도록 변경.
명확히 하지 않은 SVG view 프래그먼트 매개변수는 해당 속성을 초기값으로 재설정하지 않음을 명확히 함.
‘view ’ 요소의 ‘viewTarget’ 속성과 관련 SVG view 프래그먼트 매개변수 삭제.
프래그먼트만 있는 URL은 항상 동일 문서임.
HTML과 동기화하기 위해 ‘a ’ 요소에 추가
속성 부여.
URL 및 외부 리소스 파일 처리에 대한 상세 지침 작성.
K.2.21. 스크립팅 챕터(SVG 1.1)
‘contentScriptType’ 속성 삭제.
AnimationEvents에서 ‘onload’ 삭제.
이 챕터 전체를 상호작용 챕터로 병합함.
K.2.22. 애니메이션 챕터(SVG 1.1 한정)
이 챕터를 SVG 애니메이션 모듈로 분리함.
일부 정보 제공용 텍스트는 새로운 애니메이션 부록으로 이동됨.
K.2.23. 폰트 챕터(SVG 1.1 한정)
WOFF 요구 사항 추가, 내용 재배치.
이 챕터 및 포함된 SVG 폰트 기능 삭제,
‘font’ ,
‘glyph’ ,
‘missing-glyph’ ,
‘hkern’ ,
‘vkern’ ,
‘font-face’ ,
‘font-face-src’ ,
‘font-face-uri’ ,
‘font-face-format’ ,
‘font-face-name’ 요소 및 해당 IDL 인터페이스도 포함함.
(남은 내용은 텍스트 챕터로 병합됨.)
K.2.25. 하위 호환성 챕터(SVG 1.1 한정)
이 챕터 삭제(실질적으로 정보 제공용이었음).
K.2.26. 확장성 챕터(SVG 1.1 한정)
K.2.27. 문서 타입 정의 부록(SVG 1.1 한정)
이 부록 삭제, SVG 2는 DTD로 정의되지 않음.
K.2.28. SVG 문서 객체 모델(DOM)(SVG 1.1 한정)
핵심 DOM 지원 요구사항을 DOM4, DOM Level 2 Views, UI Events, DOM Level 2 Style/CSS로 업데이트함.
'SVGException' 인터페이스 삭제.
(폐기됨) 'hasFeature' 메서드 섹션 삭제.
이벤트 및 오류 처리에 관한 비 SVG 전용 텍스트 삭제.
'CSSValue' 타입에 의존했던 인터페이스 및 메서드 삭제(SVG 1.1에서 이미 폐기됨).
다른 DOM 명세에 대한 의존성 업데이트:
DOM 4를 최소 요구사항으로, DOM 현행 표준은 "should"로 지정.
구식 DOM View 명세 지원 요구사항 삭제.
DOM Level 2 Style 관련 요구사항은 CSSOM에서 정의된 인터페이스만 포함하도록 하고, CSSOM 전체 지원은 "should"로 지정.
("DOM Level 2 CSS와의 관계" 섹션 삭제.)
Geometry Interfaces Module Level 1을 요구사항에 추가.
클립보드 API 및 이벤트를 UI Events 요구사항에 보완적으로 규범적 요구사항으로 추가.
SVG DOM 요구사항이 다른 명세에서 정의된 요소에도 확장됨을 명확히 함.
SVG 네임스페이스의 알 수 없는 요소 처리 요구사항 추가:
"must": 브라우저가 현재 처리하는 방식(SVGElement 인스턴스)대로 처리해야 함;
"should": SVGUnknownElement 인터페이스 구현(단, 이는 at risk).
textLength 초기화에 대한 특별 규칙 삭제, 속성의 동적 초기값
정의를 명확히 함.
객체 초기화 규칙은 (none)
초기값 반영 시에만 적용되며, Geometry 등 다른 명세에서 정의된 인터페이스에도 적용됨을 명확히 함.
"UI Events와의 관계" 섹션 업데이트,
대부분의 이벤트 핸들러 속성이 모든 요소에 제공됨을 반영, 클립보드 API 이벤트도 사용 가능.
소프트웨어에 대한 규범적 요구사항을 명확히 하는 문구로 업데이트함.
이 부록 전체를 기본 데이터 타입 챕터로 병합,
단 "UI Events와의 관계" 섹션은 상호작용 챕터로 병합함.
이슈 토론
수정사항
K.2.29. IDL 정의 부록
표준 WebIDL 형식으로 변환됨.
관련 챕터에서 정의된 기타 변경사항 포함.
K.2.30. Java 언어 바인딩 부록(SVG 1.1 한정)
이 부록 삭제, 언어 바인딩은 이제 Web IDL로 정의됨.
K.2.31. ECMAScript 언어 바인딩 부록(SVG 1.1 한정)
이 부록 삭제, 언어 바인딩은 이제 Web IDL로 정의됨.
K.2.32. 구현 노트 부록(SVG 1.1에서는 구현 요구사항)
구현되지 않은 범위 초과(flag out-of-range) 값 노트 삭제.
이슈 토론
수정사항
규범적 섹션을 챕터로 이동하고, 부록 이름을 구현 노트로 변경:
오류 처리(Error Processing)는 이제 적합성 기준에 있음.
값 클램핑(Clamping Values)은 데이터 타입 및 인터페이스에 있으며, 색상 및 불투명도 관련 섹션은 삭제됨(클램핑 동작은 CSS Color에서 정의).
타원 곡선(Elliptical Arc) 구현 노트의 규범적 부분은 경로 챕터 및 기타 경로 구현 요구사항에 포함됨.
텍스트 선택 구현 노트는 텍스트 챕터의 주요 텍스트 선택 섹션에 포함됨.
인쇄 구현 노트는 이제 적합성 기준에 있음.
이슈 토론
수정사항
K.2.33. 접근성 지원 부록
K.2.34. 국제화 지원 부록(SVG 1.1 한정)
K.2.35. SVG 파일 크기 최소화 부록(SVG 1.1 한정)
K.2.36. SVG 문서 애니메이션 부록(SVG 2 한정)
K.2.37. 참고문헌 부록
CSS2에 대한 규범적 참조 삭제.
DOM Level 3 Core에 대한 정보 제공용 참조 삭제.
DOM Level 1 Core에 대한 규범적 참조를 정보 제공용으로 변경.
DOM Level 2 Core에 대한 규범적 참조를 DOM4로 변경.
SMIL 3에 대한 정보 제공용 참조를 규범적으로 변경.
CSS3 Color, CSS3 Fonts, CSS3 Line Box, CSS3 Transforms, CSS3 UI, CSS3 Values and Units, CSS4 Images, Filter
Effects, WOFF, Web IDL에 대한 규범적 참조 추가.
CSS 3 Transitions 및 Animations에 대한 정보 제공용 참조 추가.
DOM Level 2 Events 및 DOM Level 3 Events 참조를 UI Events 및 DOM 4에 대한 규범적 참조로 대체.
WAI-ARIA 1.1에 대한 규범적 참조 추가.
Shadow DOM에 대한 규범적 참조 추가.
DOM Level 2 Views에 대한 규범적 참조 삭제.
Geometry Interfaces에 대한 규범적 참조 추가.
CSSOM에 대한 규범적 참조 추가.
클립보드 API 및 이벤트에 대한 규범적 참조 추가.
K.2.38. 요소, 속성, 그리고 속성(Property) 색인 부록
K.2.39. IDL 색인 부록(SVG 2 한정)
K.2.40. 기능 문자열(SVG 1.1 한정)