1212.may , .has-dependency {
1313 background-color : lightgray;
1414}
15+ .at-risk , table .results .at-risk a : not (: hover ) {
16+ color : lightgray;
17+ }
1518.exit .id {
1619 background-color : # bcffa9 ;
1720}
21+ table .results th {
22+ border-bottom : thin solid black;
23+ }
1824table .results td {
1925 text-align : center;
2026}
2127table .results td .pass {
2228 background-color : lime;
2329}
30+ table .results tr .summary {
31+ border-top : thin solid gray;
32+ }
33+ table .results tr .summary td {
34+ text-align : left;
35+ }
2436</ style >
2537< body >
2638 < h1 > CSS Writing Modes Level 3 Implementation Report</ h1 >
27-
39+
2840 < h2 > Introduction</ h2 >
29- < p > < a href ="https://drafts.csswg.org/css-writing-modes-3/ "> CSS Writing Modes Level 3</ a > defines CSS support
30- for various international writing modes, such as left-to-right (e.g. Latin or Indic), right-to-left
41+ < p > < a href ="https://drafts.csswg.org/css-writing-modes-3/ "> CSS Writing Modes Level 3</ a > defines CSS support
42+ for various international writing modes, such as left-to-right (e.g. Latin or Indic), right-to-left
3143 (e.g. Hebrew or Arabic), bidirectional (e.g. mixed Latin and Arabic) and vertical (e.g. Asian scripts).
32- It has a < a href ="http://test.csswg.org/suites/css-writing-modes-3_dev/nightly-unstable/ "> test suite</ a >
33- containing 1126 tests. Of those, 908 (80.6 %) meet the CR exit criteria.</ p >
44+ It has a < a href ="http://test.csswg.org/suites/css-writing-modes-3_dev/nightly-unstable/ "> test suite</ a >
45+ containing 995 tests. Of those, 866 (87 %) meet the CR exit criteria as of January, 2017 .</ p >
3446 < p > This implementation report examines the remaining tests in more detail.
3547 </ p >
48+ < p > Note that this report counts Blink and WebKit as one implementation,
49+ though it shows the data for each where available.</ p >
3650 < h2 > Tests that do not have 2 implementations</ h2 >
3751
3852 < table id ="less-than-2 " class ="results "> </ table >
@@ -96,19 +110,37 @@ <h3>Tests that require other specifications</h3>
96110 they are not considered as required.
97111 < table id ="has-dependency " class ="results "> </ table >
98112
113+ < h3 > Tests that are not MUST</ h3 >
114+ < p > Following tests do not have 2 implementations,
115+ but they are defined as MAY/SHOULD and that
116+ they are not considered as required.
117+ < table id ="may " class ="results "> </ table >
118+
119+ < h3 > Tests that were moved to Level 4</ h3 >
120+ < p > Following tests do not have 2 implementations,
121+ but they were < i > at risk</ i > in the CR and were moved to Level 4.
122+ < table id ="at-risk " class ="results "> </ table >
123+
99124 < h2 > All results</ h2 >
100125 < table id ="all-list " class ="results "> </ table >
101126< script >
102127window . onload = fillData ;
103128function fillData ( ) {
104129 const testList = loadData ( ) ;
105130 fillTable ( document . getElementById ( 'less-than-2' ) , testList , test => {
106- return test . passCount < 2 && ! test . isMay && ! test . hasDependency ;
131+ return test . passCount < 2 && ! test . isMay && ! test . hasDependency && ! test . isAtRisk ;
107132 } ) ;
108133 fillTable ( document . getElementById ( 'has-dependency' ) , testList , test => {
109- return test . passCount < 2 && test . hasDependency ;
134+ return test . passCount < 2 && test . hasDependency && ! test . isAtRisk ;
135+ } ) ;
136+ fillTable ( document . getElementById ( 'may' ) , testList , test => {
137+ return test . passCount < 2 && test . isMay && ! test . isAtRisk ;
138+ } ) ;
139+ fillTable ( document . getElementById ( 'at-risk' ) , testList , test => {
140+ return test . passCount < 2 && test . isAtRisk ;
110141 } ) ;
111142 fillTable ( document . getElementById ( 'all-list' ) , testList ) ;
143+ return testList ;
112144}
113145
114146function loadData ( ) {
@@ -124,10 +156,6 @@ <h2>All results</h2>
124156 test . isMay =
125157 test . id . indexOf ( 'form-controls' ) >= 0 ||
126158 test . id . indexOf ( 'full-width-00' ) >= 0 ||
127- test . id . indexOf ( '-slr' ) >= 0 ||
128- test . id . indexOf ( '-srl' ) >= 0 ||
129- test . id . indexOf ( '-sideways-lr' ) >= 0 ||
130- test . id . indexOf ( '-sideways-rl' ) >= 0 ||
131159 test . id === 'text-combine-upright-compression-005a' ||
132160 test . id === 'text-combine-upright-compression-006' ||
133161 test . id . indexOf ( 'text-combine-upright-parsing-digits' ) >= 0 ;
@@ -149,18 +177,23 @@ <h2>All results</h2>
149177 for ( let engine of engines )
150178 appendCell ( row , 'th' , engine ) ;
151179 table . appendChild ( row ) ;
180+ let showCount = 0 , passCount = 0 ;
152181 for ( let test of testList ) {
153- if ( test . isAtRisk )
154- continue ;
155182 if ( filter && ! filter ( test ) )
156183 continue ;
184+ showCount ++ ;
157185 let row = document . createElement ( 'tr' ) ;
158- if ( test . passCount >= 2 )
186+ if ( test . passCount >= 2 ) {
159187 row . className = 'exit' ;
160- else if ( test . isMay )
188+ passCount ++ ;
189+ } else if ( test . isAtRisk ) {
190+ row . className = 'at-risk' ;
191+ } else if ( test . isMay ) {
161192 row . className = 'may' ;
162- if ( test . hasDependency )
193+ }
194+ if ( test . hasDependency ) {
163195 row . classList . add ( 'has-dependency' ) ;
196+ }
164197 let label = appendCell ( row , 'td' , test . id ) ;
165198 label . className = 'id' ;
166199 label . innerHTML = '<a href="https://test.csswg.org/harness/test/css-writing-modes-3_dev/single/' + test . id + '">' + test . id + '</a>' ;
@@ -172,6 +205,16 @@ <h2>All results</h2>
172205 }
173206 table . appendChild ( row ) ;
174207 }
208+ let summary = `${ showCount } tests` ;
209+ if ( passCount )
210+ summary = `${ passCount } passes/${ showCount - passCount } fails from ${ summary } (${ Math . round ( passCount / showCount * 100 ) } % pass)` ;
211+ if ( filter )
212+ summary = `${ summary } , filtered from ${ testList . length } tests` ;
213+ let summaryRow = document . createElement ( 'tr' ) ;
214+ summaryRow . classList . add ( 'summary' ) ;
215+ let summaryCell = appendCell ( summaryRow , 'td' , summary ) ;
216+ summaryCell . colSpan = engines . length + 1 ;
217+ table . appendChild ( summaryRow ) ;
175218}
176219
177220function passCount ( test ) {
0 commit comments