Adding Web Components to feature status page.
[WebKit-https.git] / Source / WebCore / features.json
1 {
2     "specification": [
3     {
4         "name": "CSS Grid Layout Level 1",
5         "status": {
6             "status": "In Development",
7             "enabled-by-default": true
8         },
9         "url": "http://dev.w3.org/csswg/css-grid/",
10         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=60731",
11         "keywords": ["css grid layout", "css grid", "grid"],
12         "category": "css",
13         "contact": {
14             "name": "Sergio Villar Senin",
15             "email": "svillar@igalia.com"
16         }
17     },
18     {
19         "name": "CSS Inline Layout Module Level 3",
20         "status": {
21             "status": "In Development",
22             "enabled-by-default": true
23         },
24         "url": "http://dev.w3.org/csswg/css-inline/",
25         "keywords": ["css inline layout", "css inline", "inline"],
26         "category": "css"
27     },
28     {
29         "name": "CSS Media Queries Level 4",
30         "url": "http://dev.w3.org/csswg/mediaqueries-4/",
31         "keywords": ["css media queries", "media queries"],
32         "category": "css"
33     },
34     {
35         "name": "CSS Positioned Layout Module Level 3",
36         "url": "http://dev.w3.org/csswg/css-position/",
37         "keywords": ["css positioning"],
38         "category": "css"
39     },
40     {
41         "name": "CSS Scroll Snap Points Module Level 1",
42         "status": {
43             "status": "In Development",
44             "enabled-by-default": true
45         },
46         "url": "http://dev.w3.org/csswg/css-snappoints/",
47         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=134283",
48         "keywords": ["css scroll snap points", "scroll snap", "snap points"],
49         "category": "css",
50         "contact": {
51             "name": "Brent Fulgham",
52             "email": "bfulgham@apple.com"
53         }
54     },
55     {
56         "name": "CSS Selectors Level 4",
57         "url": "http://dev.w3.org/csswg/selectors-4/",
58         "keywords": ["css selectors", "selectors"],
59         "category": "css",
60         "contact": {
61             "name": "Benjamin Poulain",
62             "twitter": "@awfulben",
63             "email": "benjamin@webkit.org"
64         }
65     },
66     {
67         "name": "CSS Shapes Level 1",
68         "url": "http://www.w3.org/TR/css-shapes-1/",
69         "keywords": ["css shapes", "shapes"],
70         "category": "css"
71     },
72     {
73         "name": "DOM",
74         "url": "https://dom.spec.whatwg.org",
75         "keywords": ["dom", "dom4"],
76         "category": "html"
77     },
78     {
79         "name": "Filter Effects Module Level 2",
80         "url": "http://dev.w3.org/fxtf/filters-2/",
81         "keywords": ["css filters", "filter effects", "filters"],
82         "category": "css"
83     },
84     {
85         "name": "HTML5",
86         "url": "https://html.spec.whatwg.org",
87         "keywords": ["html", "html5", "html5.1"],
88         "category": "html"
89     },
90     {
91         "name": "Streams",
92         "url": "https://streams.spec.whatwg.org",
93         "keywords": ["streams api"],
94         "category": "webapps"
95     },
96     {
97         "name": "Web Components",
98         "status": {
99             "status": "No active development"
100         },
101         "url": "http://www.w3.org/wiki/WebComponents/",
102         "keywords": ["web components", "shadow dom", "html imports", "custom element", "template element"],
103         "category": "webapps",
104         "description": "A collection of technologies to improve modularization of DOM subtrees.",
105         "contact": {
106             "name": "Jon Davis",
107             "twitter": "@jonathandavis",
108             "email": "web-evangelist@apple.com"
109         }
110     },
111     {
112         "name": "WebGL",
113         "status": {
114             "status": "In Development",
115             "enabled-by-default": true
116         },
117         "url": "https://www.khronos.org/registry/webgl/specs/1.0/",
118         "keywords": ["webgl"],
119         "category": "html"
120     }
121     ],
122
123     "features": [
124     {
125         "name": "CSS Selector :any-link",
126         "status": {
127             "status": "Done",
128             "enabled-by-default": true
129         },
130         "url": "http://dev.w3.org/csswg/selectors-4/#the-any-link-pseudo",
131         "specification": "CSS Selectors Level 4",
132         "description": "The pseudo class :any-link matches any element that would match :link or :visisted.",
133         "comment": "A prefix version :-webkit-any-link has been available for a while but it was not 100% compliant to the specification.",
134         "contact": {
135             "name": "Benjamin Poulain",
136             "twitter": "@awfulben",
137             "email": "benjamin@webkit.org"
138         }
139     },
140     {
141         "name": "CSS Selector :lang() level 4",
142         "status": {
143             "status": "Done",
144             "enabled-by-default": true
145         },
146         "url": "http://dev.w3.org/csswg/selectors-4/#the-lang-pseudo",
147         "specification": "CSS Selectors Level 4",
148         "description": "The selector :lang() is extended in level 4 to support a list of language range, each range can contain a wildcard. For example: p:lang(\"*-be\", \"en\")."
149     },
150     {
151         "name": "CSS Selector :matches()",
152         "status": {
153             "status": "Done",
154             "enabled-by-default": true
155         },
156         "url": "http://dev.w3.org/csswg/selectors-4/#matches",
157         "specification": "CSS Selectors Level 4",
158         "description": "The selector :matches() takes a selector list as argument and matches an element if any of them matches (e.g. :matches(article > section, #target)). When used for styling, the specificity of :matches() is the higest specificity of all selectors in the selector list.",
159         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :matches().",
160         "contact": {
161             "name": "Benjamin Poulain",
162             "twitter": "@awfulben",
163             "email": "benjamin@webkit.org"
164         }
165     },
166     {
167         "name": "CSS Selector :not() level 4",
168         "status": {
169             "status": "Done",
170             "enabled-by-default": true
171         },
172         "url": "http://dev.w3.org/csswg/selectors-4/#negation",
173         "specification": "CSS Selectors Level 4",
174         "description": "The selector :not() in level 4 supports full selector lists as argument. For example: :not(:any-link >> img, :any-link >> picture).",
175         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :not().",
176         "contact": {
177             "name": "Benjamin Poulain",
178             "twitter": "@awfulben",
179             "email": "benjamin@webkit.org"
180         }
181     },
182     {
183         "name": "CSS Selector :nth-child(An+B of selector list) and :nth-last-child(An+B of selector list)",
184         "status": {
185             "status": "Done",
186             "enabled-by-default": true
187         },
188         "url": "http://dev.w3.org/csswg/selectors-4/#the-nth-child-pseudo",
189         "specification": "CSS Selectors Level 4",
190         "description": "The pseudo classes :nth-child() and :nth-last-child() now supports a selector list that filters what to count. For example: \":nth-child(even of .visible)\".",
191         "comment": "The pseudo classes <em>:visited</em> and <em>:link</em> are not supported inside :nth-child() and :nth-last-child().",
192         "contact": {
193             "name": "Benjamin Poulain",
194             "twitter": "@awfulben",
195             "email": "benjamin@webkit.org"
196         }
197     },
198     {
199         "name": "CSS Selector :placeholder-shown",
200         "status": {
201             "status": "Done",
202             "enabled-by-default": true
203         },
204         "url": "http://dev.w3.org/csswg/selectors-4/#placeholder",
205         "specification": "CSS Selectors Level 4",
206         "description": "The selector :placeholder-shown matches any input element that has a visible placeholder.",
207         "comment": "Styling the placeholder can be done through the WebKit pseudo-element \"::-webkit-input-placeholder\".",
208         "contact": {
209             "name": "Benjamin Poulain",
210             "twitter": "@awfulben",
211             "email": "benjamin@webkit.org"
212         }
213     },
214     {
215         "name": "Case-insensitive attribute selectors",
216         "status": {
217             "status": "Done",
218             "enabled-by-default": true
219         },
220         "url": "http://dev.w3.org/csswg/selectors-4/#attribute-case",
221         "specification": "CSS Selectors Level 4",
222         "description": "Any attribute selector that test a value can take a flag \"i\" to use case insensitive checks. For example: input[type=number i] test the value \"number\" case-insensitively.",
223         "contact": {
224             "name": "Benjamin Poulain",
225             "twitter": "@awfulben",
226             "email": "benjamin@webkit.org"
227         }
228     },
229     {
230         "name": "Custom Elements",
231         "status": {
232             "status": "No active development"
233         },
234         "url": "http://w3c.github.io/webcomponents/spec/custom/",
235         "specification": "Web Components",
236         "description": "Define a custom HTML tag and associate it with an ES6 class.",
237         "contact": {
238             "name": "Jon Davis",
239             "twitter": "@jonathandavis",
240             "email": "web-evangelist@apple.com"
241         }
242     },
243     {
244         "name": "Element.closest()",
245         "status": {
246             "status": "Done",
247             "enabled-by-default": true
248         },
249         "url": "https://dom.spec.whatwg.org/#dom-element-closest",
250         "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/API/Element/closest",
251         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=137418",
252         "specification": "DOM",
253         "description": "Find the closest ancestor matching the selector passed as argument. The element itself is returned if it matches the selector.",
254         "contact": {
255             "name": "Benjamin Poulain",
256             "twitter": "@awfulben",
257             "email": "benjamin@webkit.org"
258         }
259     },
260     {
261         "name": "Filter Effects backdrop-filter propery",
262         "status": {
263             "status": "Done",
264             "enabled-by-default": true
265         },
266         "url": "http://dev.w3.org/fxtf/filters-2/#propdef-backdrop-filter",
267         "specification": "Filter Effects Module Level 2",
268         "description": "This property specifies styling for filters applied to the backdrop of an element."
269     },
270     {
271         "name": "Force Click Events",
272         "status": {
273             "status": "Prototyping",
274             "enabled-by-default": true
275         },
276         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=142836",
277         "description": "Provide the events necessary to handle force click events in the page, overriding the default behavior."
278     },
279     {
280         "name": "HTML imports",
281         "status": {
282             "status": "No active development"
283         },
284         "url": "http://w3c.github.io/webcomponents/spec/imports/",
285         "specification": "Web Components",
286         "description": "Includes resusable HTML documents in other HTML documents.",
287         "comment": "There are concerns about the disconnect between this specification and ES6 Modules. WebKit has no intent to support the current specification.",
288         "contact": {
289             "name": "Jon Davis",
290             "twitter": "@jonathandavis",
291             "email": "web-evangelist@apple.com"
292         }
293     },
294     {
295         "name": "Initial Letter",
296         "status": {
297             "status": "Done",
298             "enabled-by-default": true
299         },
300         "url": "http://dev.w3.org/csswg/css-inline/#propdef-initial-letter",
301         "specification": "CSS Inline Layout Module Level 3",
302         "description": "This property specifies styling for dropped, raised, and sunken initial letters."
303     },
304     {
305         "name": "Interaction Media Features (pointer, hover, any-pointer, any-hover)",
306         "status": {
307             "status": "Done",
308             "enabled-by-default": true
309         },
310         "url": "http://dev.w3.org/csswg/mediaqueries-4/#mf-interaction",
311         "specification": "CSS Media Queries Level 4",
312         "description": "The \"pointer\" media defines how percise the pointing device is. The \"hover\" media defines the ability of the poiting device to hover elements."
313     },
314     {
315         "name": "MicroData",
316         "status": {
317             "status": "Removed"
318         },
319         "url": "https://html.spec.whatwg.org/multipage/microdata.html",
320         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=119480",
321         "specification": "HTML5",
322         "comment": "WebKit used to support MicroData. The feature never gained any traction and was eventually removed to clean up the codebase."
323     },
324     {
325         "name": "Navigator.hardwareConcurrency",
326         "status": {
327             "status": "Done",
328             "enabled-by-default": true
329         },
330         "url": "https://wiki.whatwg.org/wiki/Navigator_HW_Concurrency",
331         "webkit-url": "http://trac.webkit.org/changeset/169017",
332         "description": "Navigator.hardwareConcurrency provides the total number of logical processors available to the user agent."
333     },
334     {
335         "name": "Picture element",
336         "status": {
337             "status": "In development",
338             "enabled-by-default": false
339         },
340         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element",
341         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=116963",
342         "specification": "HTML5",
343         "description": "Enable handling the art-direction responsive images use-case by defining multiple image sources in markup",
344         "contact": {
345             "name": "Yoav Weiss",
346             "twitter": "@yoavweiss",
347             "email": "yoav@yoav.ws"
348         }
349     },
350     {
351         "name": "Position: sticky",
352         "status": {
353             "status": "Done",
354             "enabled-by-default": true
355         },
356         "url": "http://dev.w3.org/csswg/css-position/#sticky-pos",
357         "specification": "CSS Positioned Layout Module Level 3",
358         "description": "Sticky positioning provides a way to position element out of the normal flow when scrolling. Unlike solutions based on JavaScript, the change of position is synchronized with scrolling.",
359         "comment": "The feature is prefixed with <em>-webkit-</em>. There are some remaining issues to resolve in the specification."
360     },
361     {
362         "name": "Readable Streams",
363         "status": {
364             "status": "In Development",
365             "enabled-by-default": true
366         },
367         "url": "https://streams.spec.whatwg.org/#rs",
368         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=138967",
369         "specification": "Streams",
370         "comment": "The ReadableStream and ReadableStreamReader interfaces are available but not functional."
371     },
372     {
373         "name": "Shadow DOM",
374         "status": {
375             "status": "No active development"
376         },
377         "url": "http://w3c.github.io/webcomponents/spec/shadow/",
378         "specification": "Web Components",
379         "description": "Functional encapsulation of HTML, CSS and JavaScript for Web Components.",
380         "contact": {
381             "name": "Jon Davis",
382             "twitter": "@jonathandavis",
383             "email": "web-evangelist@apple.com"
384         }
385     },
386     {
387         "name": "Shape outside for floats",
388         "status": {
389             "status": "In Development",
390             "enabled-by-default": true
391         },
392         "url": "http://www.w3.org/TR/css-shapes-1/",
393         "specification": "CSS Shapes Level 1",
394         "description": "CSS Shapes describe geometric shapes for use in CSS. For Level 1, CSS Shapes can be applied to floats.",
395         "comment": "The implementation is feature complete and shipping, but is -webkit prefixed."
396     },
397     {
398         "name": "Shared Web Workers",
399         "status": {
400             "status": "Removed"
401         },
402         "url": "https://html.spec.whatwg.org/multipage/workers.html#shared-workers-introduction",
403         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=140344",
404         "specification": "HTML5",
405         "comment": "The implementation of Shared Web Workers was imposing undesirable constraints on the engine. The feature never gained any adoption and was eventually removed from the engine."
406     },
407     {
408         "name": "Srcset w descriptor and related sizes attribute",
409         "status": {
410             "status": "Done",
411             "enabled-by-default": true
412         },
413         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element",
414         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=133620",
415         "specification": "HTML5",
416         "description": "Enable handling the variable width responsive images use-case by defining multiple image resources in markup",
417         "contact": {
418             "name": "Yoav Weiss",
419             "twitter": "@yoavweiss",
420             "email": "yoav@yoav.ws"
421         }
422     },
423     {
424         "name": "Srcset x descriptor",
425         "status": {
426             "status": "Done",
427             "enabled-by-default": true
428         },
429         "url": "https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element",
430         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=110252",
431         "specification": "HTML5",
432         "description": "Enable handling the fixed width responsive images use-case by defining multiple image resources in markup",
433         "contact": {
434             "name": "Yoav Weiss",
435             "twitter": "@yoavweiss",
436             "email": "yoav@yoav.ws"
437         }
438     },
439     {
440         "name": "Template Element",
441         "status": {
442             "status": "Done",
443             "enabled-by-default": true
444         },
445         "url": "http://www.w3.org/TR/html5/scripting-1.html#the-template-element",
446         "webkit-url": "https://bugs.webkit.org/show_bug.cgi?id=124637",
447         "documentation-url": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template",
448         "specification": "Web Components",
449         "description": "Declares HTML fragments that can be cloned and inserted into the document by a script."
450     }
451     ]
452 }