Project Spartan(Edge)のHTML5の準拠度をチェックする

公開:2015-04-29 16:07
更新:2020-02-15 04:37
カテゴリ:web,windows 10,windows

Project Spartanの今のHTML5準拠度ってどれくらいなのか。ということでHTML5 Testを実施し、他のブラウザと比較してみることにした。

総合

まずは総合ポイント。満点は555ポイント。

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
総合 390 348 523 445

IE11よりは良いが、まだまだといったところ。どこでポイントを落としているか各カテゴリで見ていくことにする。

Semantics

Parsing rules (5点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 5 5 5 5
<!DOCTYPE html> triggers standards mode Yes ✔ Yes ✔ Yes ✔ Yes ✔
HTML5 tokenizer Yes ✔ Yes ✔ Yes ✔ Yes ✔
HTML5 tree building Yes ✔ Yes ✔ Yes ✔ Yes ✔
Parsing inline SVG Yes ✔ Yes ✔ Yes ✔ Yes ✔
Parsing inline MathML Yes ✔ Yes ✔ Yes ✔ Yes ✔

MathMLってインラインで書けるのね。ついさっき知ってしまった。ただ上記の結果はブラウザがSVGとMathMLのインライン記述をパースできればOKとしているようで、実際描画されるかどうかまでは検証していないようである。よってこの項目はポイントはつかない。
SVGは大丈夫だろうけれどもMathMLはどうなのか。ちょっとMathMLのテストを実行してみたけど描画されなかった。今のところFirefoxとSafariがMathMLをサポートしているようである。この項目はサポートしていてもポイントが付かない。

Elements (30点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 20 16 26 21
Embedding custom non-visible data Yes ✔ Yes ✔ Yes ✔ Yes ✔
New or modified elements
Section elements Yes ✔ Yes ✔ Yes ✔ Yes ✔
Grouping content elements Partial ○ Partial ○ Yes ✔ Yes ✔
Text-level semantic elements Partial ○ Partial ○ Partial ○ Partial ○
Interactive elements No ✘ No ✘ Partial ○ No ✘
Global attributes or methods
hidden attribute Yes ✔ Yes ✔ Yes ✔ Yes ✔
Dynamic markup insertion Yes ✔ Yes ✔ Yes ✔ Yes ✔

このセクションでは10ポイント落としている。IE11のレベルからそう変わっていないようだ。まだ手を付けていないのか。

Forms(75点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 34 34 73 49
Field types
input type=text Partial ○ Partial ○ Yes ✔ Yes ✔
input type=search Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=tel Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=url Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=email Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=date No ✘ No ✘ Yes ✔ No ✘
input type=month No ✘ No ✘ Yes ✔ No ✘
input type=week No ✘ No ✘ Yes ✔ No ✘
input type=time No ✘ No ✘ Yes ✔ No ✘
input type=datetime No ✘ No ✘ No ✘ No ✘
input type=datetime-local No ✘ No ✘ Yes ✔ No ✘
input type=number Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=range Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=color No ✘ No ✘ Yes ✔ Yes ✔
input type=checkbox Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=image Yes ✔ Yes ✔ Yes ✔ Yes ✔
input type=file Yes ✔ Yes ✔ Yes ✔ Yes ✔
textarea Yes ✔ Yes ✔ Yes ✔ Yes ✔
select Yes ✔ Yes ✔ Yes ✔ Yes ✔
fieldset Partial ○ Partial ○ Yes ✔ Yes ✔
datalist Yes ✔ Yes ✔ Yes ✔ Yes ✔
keygen No ✘ No ✘ Yes ✔ No ✘
output No ✘ No ✘ Yes ✔ Yes ✔
progress Yes ✔ Yes ✔ Yes ✔ Yes ✔
meter No ✘ No ✘ Yes ✔ Yes ✔
Fields
Field validation Yes ✔ Yes ✔ Yes ✔ Yes ✔
Association of controls and forms Partial ○ Partial ○ Yes ✔ Partial ○
Other attributes Partial ○ Partial ○ Yes ✔ Partial ○
CSS selectors Partial ○ Partial ○ Yes ✔ Yes ✔
Events Partial ○ Partial ○ Yes ✔ Yes ✔
Forms
Form validation Yes ✔ Yes ✔ Yes ✔ Yes ✔

*この項目でSpartanは大きくポイントを落としている。IE11とポイントが同じところを見るとまだ手をつけらていないように見える。こういうところを見るとSpartanはIE11をベースに改良アプローチで作られているのかな?レンダリングエンジンは新たに書き起こしたようだけれどもね。

Microdata(0点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 0 0 0 0
Microdata No ✘ No ✘ No ✘ Yes ✔

MicrodataはRDF-Liteに移行していくのだろう。なのでサポートされていてもポイントはつかない。

Device Access

Location and Orientation(20点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 20 15 20 20
Geolocation Yes ✔ Yes ✔ Yes ✔ Yes ✔
Device Orientation Yes ✔ No ✘ Yes ✔ Yes ✔
Device Motion Yes ✔ No ✘ Yes ✔ Yes ✔

Output(10点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 5 5 10 10
Full screen support Yes ✔ Prefixed ✔ Prefixed ✔ Prefixed ✔
Web Notifications No ✘ No ✘ Yes ✔ Yes ✔

Input(25点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 22 0 20 20
Access the webcam Yes ✔ No ✘ Prefixed ✔ Prefixed ✔
Gamepad control Yes ✔ No ✘ Yes ✔ Yes ✔
Pointer Events Yes ✔ No ✘ No ✘ No ✘
Pointer Lock support No ✘ No ✘ Yes ✔ Prefixed ✔

Multimaedia

Video(35点満点)

ビデオ項目。なんと満点。

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 35 31 31 29
video element Yes ✔ Yes ✔ Yes ✔ Yes ✔
Subtitles Yes ✔ Yes ✔ Yes ✔ Yes ✔
Audio track selection Yes ✔ Yes ✔ No ✘ No ✘
Video track selection Yes ✔ No ✘ No ✘ No ✘
Poster images Yes ✔ Yes ✔ Yes ✔ Yes ✔
Codec detection Yes ✔ Yes ✔ Yes ✔ Yes ✔
Advanced
DRM support Prefixed ✔ No ✘ Prefixed ✔ No ✘
Media Source extensions Yes ✔ No ✘ Yes ✔ No ✘
Codecs
MPEG-4 ASP support Yes ✔ No ✘ No ✘ No ✘
H.264 support Yes ✔ Yes ✔ Yes ✔ Yes ✔
Ogg Theora support No ✘ No ✘ Yes ✔ Yes ✔
WebM with VP8 support No ✘ No ✘ Yes ✔ Yes ✔
WebM with VP9 support No ✘ No ✘ Yes ✔ Yes ✔

Audio(35点満点)

さて私個人的には注目のAudio機能。そこそこ良い。

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 25 20 30 25
audio element Yes ✔ Yes ✔ Yes ✔ Yes ✔
Loop audio Yes ✔ Yes ✔ Yes ✔ Yes ✔
Preload in the background Yes ✔ Yes ✔ Yes ✔ Yes ✔
Advanced
Web Audio API Yes ✔ No ✘ Yes ✔ Yes ✔
Speech Recognition No ✘ No ✘ Prefixed ✔ No ✘
Speech Synthesis No ✘ No ✘ Yes ✔ No ✘
Codecs
PCM audio support No ✘ No ✘ Yes ✔ Yes ✔
AAC support Yes ✔ Yes ✔ Yes ✔ Yes ✔
MP3 support Yes ✔ Yes ✔ Yes ✔ Yes ✔
Ogg Vorbis support No ✘ No ✘ Yes ✔ Yes ✔
Ogg Opus support No ✘ No ✘ Yes ✔ Yes ✔
WebM with Vorbis support No ✘ No ✘ Yes ✔ Yes ✔
WebM with Opus support No ✘ No ✘ Yes ✔ Yes ✔

3D, Graphics & Effects

Responsive images

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 5 0 15 0
picture element No ✘ No ✘ Yes ✔ No ✘
srcset attribute Yes ✔ No ✘ Yes ✔ No ✘
sizes attribute No ✘ No ✘ Yes ✔ No ✘

2D Graphics(25点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 14 14 23 21
Canvas 2D graphics Yes ✔ Yes ✔ Yes ✔ Yes ✔
Drawing primitives
Text support Yes ✔ Yes ✔ Yes ✔ Yes ✔
Path support No ✘ No ✘ Yes ✔ Yes ✔
Ellipse support No ✘ No ✘ Yes ✔ No ✘
Dashed line support Yes ✔ Yes ✔ Yes ✔ Yes ✔
System focus ring support No ✘ No ✘ No ✘ No ✘
Features
Hit testing support No ✘ No ✘ No ✘ No ✘
Blending modes No ✘ No ✘ Yes ✔ Yes ✔
Image export formats
PNG support Yes ✔ Yes ✔ Yes ✔ Yes ✔
JPEG support Yes ✔ Yes ✔ Yes ✔ Yes ✔
JPEG-XR support No ✘ No ✘ No ✘ No ✘
WebP support No ✘ No ✘ Yes ✔ No ✘

3D Graphics(20点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 20 20 20 20
WebGL 3D graphics Prefixed ✔ Prefixed ✔ Yes ✔ Yes ✔

Animation

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 5 5 5 5
window.requestAnimationFrame Yes ✔ Yes ✔ Yes ✔ Yes ✔

Connectivity

Communication(35点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 27 27 35 35
Server-Sent Events No ✘ No ✘ Yes ✔ Yes ✔
Beacon No ✘ No ✘ Yes ✔ Yes ✔
XMLHttpRequest Level 2
Upload files Yes ✔ Yes ✔ Yes ✔ Yes ✔
Response type support Yes ✔ Yes ✔ Yes ✔ Yes ✔
WebSocket
Basic socket communication Yes ✔ Yes ✔ Yes ✔ Yes ✔
ArrayBuffer and Blob support Yes ✔ Yes ✔ Yes ✔ Yes ✔

Peer To Peer(20)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 0 0 15 15
WebRTC 1.0 No ✘ No ✘ Prefixed ✔ Prefixed ✔
ObjectRTC API for WebRTC No ✘ No ✘ No ✘ No ✘
Data channel No ✘ No ✘ Prefixed ✔ Prefixed ✔

Performance & Integration

User interaction(20点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 17 12 15 19
Drag and drop
Attributes Partial ○ Partial ○ Yes ✔ Partial ○
Events Yes ✔ Yes ✔ Yes ✔ Yes ✔
HTML editing
Editing elements Yes ✔ Yes ✔ Yes ✔ Yes ✔
Editing documents Yes ✔ Yes ✔ Yes ✔ Yes ✔
CSS selectors No ✘ No ✘ Yes ✔ Yes ✔
APIs Yes ✔ Yes ✔ Yes ✔ Yes ✔
Clipboard
Clipboard API and events Yes ✔ No ✘ No ✘ Yes ✔
Spellcheck
spellcheck attribute Yes ✔ Yes ✔ Yes ✔ Yes ✔

Performance(25点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 21 21 25 25
Native binary data Yes ✔ Yes ✔ Yes ✔ Yes ✔
Workers
Web Workers Yes ✔ Yes ✔ Yes ✔ Yes ✔
Shared Workers No ✘ No ✘ Yes ✔ Yes ✔

Security(40点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 28 25 33 33
Web Cryptography API Yes ✔ Prefixed ✔ Yes ✔ Yes ✔
Content Security Policy 1.0 Yes ✔ No ✘ Yes ✔ Yes ✔
Content Security Policy 1.1 No ✘ No ✘ No ✘ No ✘
Cross-Origin Resource Sharing Yes ✔ Yes ✔ Yes ✔ Yes ✔
Cross-document messaging Yes ✔ Yes ✔ Yes ✔ Yes ✔
Iframes
Sandboxed iframe Yes ✔ Yes ✔ Yes ✔ Yes ✔
Seamless iframe No ✘ No ✘ No ✘ No ✘
iframe with inline contents No ✘ No ✘ Yes ✔ Yes ✔

History and navigation(10点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 10 10 10 10
Session history Yes ✔ Yes ✔ Yes ✔ Yes ✔

Offline & Storage

Web applications(25点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 10 11 13 15
Offline resources
Application Cache Yes ✔ Yes ✔ Yes ✔ Yes ✔
Service Workers No ✘ No ✘ No ✘ No ✘
Content and Scheme handlers
Custom scheme handlers No ✘ No ✘ Yes ✔ Yes ✔
Custom content handlers No ✘ No ✘ No ✘ Yes ✔
Custom search providers No ✘ Yes ✔ Yes ✔ Yes ✔

Storage(35点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 35 35 35 35
Key-value storage
Session Storage Yes ✔ Yes ✔ Yes ✔ Yes ✔
Local Storage Yes ✔ Yes ✔ Yes ✔ Yes ✔
Database storage
IndexedDB Yes ✔ Yes ✔ Yes ✔ Yes ✔
Objectstore Blob support Yes ✔ Yes ✔ Yes ✔ Yes ✔
Objectstore ArrayBuffer support Yes ✔ Yes ✔ Yes ✔ Yes ✔
Web SQL Database No ✘ No ✘ Yes ✔ No ✘

Files(15点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 15 15 15 15
Reading files
Basic support for reading files Yes ✔ Yes ✔ Yes ✔ Yes ✔
Create a Blob from a file Yes ✔ Yes ✔ Yes ✔ Yes ✔
Create a Data URL from a Blob Yes ✔ Yes ✔ Yes ✔ Yes ✔
Create an ArrayBuffer from a Blob Yes ✔ Yes ✔ Yes ✔ Yes ✔
Create a Blob URL from a Blob Yes ✔ Yes ✔ Yes ✔ Yes ✔
Accessing the file system
FileSystem API No ✘ No ✘ No ✘ No ✘
File API: Directories and System No ✘ No ✘ Prefixed ✔ No ✘

Streams(5点満点)

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 0 0 0 0
Readable streams No ✘ No ✘ No ✘ No ✘
Writable streams No ✘ No ✘ No ✘ No ✘

Other

Web Components

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 0 0 10 2
Custom elements No ✘ No ✘ Yes ✔ No ✘
Shadow DOM No ✘ No ✘ Yes ✔ No ✘
HTML templates No ✘ No ✘ Yes ✔ Yes ✔
HTML imports No ✘ No ✘ Yes ✔ No ✘

Other

項目 Spartan Internet Explorer 11 Chrome 39 Firefox 35
小計 17 15 17 20
Styling
Scoped style element No ✘ No ✘ No ✘ Yes ✔
Scripts
Asynchronous script execution Yes ✔ Yes ✔ Yes ✔ Yes ✔
Runtime script error reporting Yes ✔ Yes ✔ Yes ✔ Yes ✔
Script execution events No ✘ No ✘ No ✘ Yes ✔
Base64 encoding and decoding Yes ✔ Yes ✔ Yes ✔ Yes ✔
JSON encoding and decoding Yes ✔ Yes ✔ Yes ✔ Yes ✔
URL API Yes ✔ Yes ✔ Yes ✔ Yes ✔
Mutation Observer Yes ✔ Yes ✔ Yes ✔ Yes ✔
Promises Yes ✔ No ✘ Yes ✔ Yes ✔
Other
Page Visibility Yes ✔ Yes ✔ Yes ✔ Yes ✔
Text selection Yes ✔ Yes ✔ Yes ✔ Yes ✔
Scroll into view Yes ✔ Yes ✔ Yes ✔ Yes ✔

まとめ

まとめるほどの知識はないが無理やりまとめると、HTML5 TestでStableとなっている機能についてはほぼほぼ、Proposalについてはまあまあ、Experimentalについては未実装という感じである。Experimentalなんてころころ変わるから様子見かもしれないね。Windows 10のリリースまでには日にちがあるのでこれがどこまで実装されるのか。個人的にはWeb Audioが実装されたのがうれしいね。VP8/VP9の実装がなされるのかも見ものであるが。

ただSpartan自体はまだまだ。なんかおかしな挙動をするしね。

最後に

SunSpider BenchmarkによるJSの速度比較を載せておく。私のマシンでは驚きの結果が。。ほんとかね。。

TEST                   COMPARISON               FROM(Spartan)       TO(Chrome)       DETAILS

===============================================================================

** TOTAL **:           *1.65x as slow*   118.5ms +/- 13.6%   195.5ms +/- 1.4%      significant

===============================================================================

  3d:                  *2.94x as slow*    11.8ms +/- 35.3%    34.7ms +/- 2.6%      significant
    cube:              *2.33x as slow*     4.8ms +/- 43.2%    11.2ms +/- 5.0%      significant
    morph:             *11.2x as slow*     1.1ms +/- 20.5%    12.3ms +/- 2.8%      significant
    raytrace:          *1.90x as slow*     5.9ms +/- 34.0%    11.2ms +/- 4.0%      significant

  access:              *1.85x as slow*     7.9ms +/- 25.7%    14.6ms +/- 3.4%      significant
    binary-trees:      1.43x as fast       2.0ms +/- 0.0%      1.4ms +/- 26.4%     significant
    fannkuch:          *3.00x as slow*     2.4ms +/- 37.7%     7.2ms +/- 4.2%      significant
    nbody:             ??                  2.4ms +/- 37.7%     3.0ms +/- 0.0%      not conclusive: might be *1.25x as slow*
    nsieve:            *2.73x as slow*     1.1ms +/- 20.5%     3.0ms +/- 0.0%      significant

  bitops:              *1.67x as slow*     6.0ms +/- 11.2%    10.0ms +/- 0.0%      significant
    3bit-bits-in-byte: *10.0x as slow*     0.1ms +/- 226.0%     1.0ms +/- 0.0%      significant
    bits-in-byte:      *2.00x as slow*     1.5ms +/- 25.1%     3.0ms +/- 0.0%      significant
    bitwise-and:       *1.30x as slow*     2.3ms +/- 15.0%     3.0ms +/- 0.0%      significant
    nsieve-bits:       *1.43x as slow*     2.1ms +/- 10.8%     3.0ms +/- 0.0%      significant

  controlflow:         ??                  1.5ms +/- 33.7%     1.9ms +/- 27.8%     not conclusive: might be *1.27x as slow*
    recursive:         ??                  1.5ms +/- 33.7%     1.9ms +/- 27.8%     not conclusive: might be *1.27x as slow*

  crypto:              *3.41x as slow*     4.6ms +/- 74.8%    15.7ms +/- 4.3%      significant
    aes:               *1.85x as slow*     3.4ms +/- 33.2%     6.3ms +/- 5.5%      significant
    md5:               *5.88x as slow*     0.8ms +/- 196.6%     4.7ms +/- 10.3%     significant
    sha1:              *11.8x as slow*     0.4ms +/- 226.0%     4.7ms +/- 10.3%     significant

  date:                -                  23.5ms +/- 3.9%     22.4ms +/- 4.6%  
    format-tofte:      *1.31x as slow*     8.5ms +/- 7.1%     11.1ms +/- 4.8%      significant
    format-xparb:      1.33x as fast      15.0ms +/- 3.2%     11.3ms +/- 6.7%      significant

  math:                *2.37x as slow*     6.7ms +/- 16.7%    15.9ms +/- 4.5%      significant
    cordic:            *3.09x as slow*     1.1ms +/- 20.5%     3.4ms +/- 10.9%     significant
    partial-sums:      *1.91x as slow*     5.4ms +/- 9.3%     10.3ms +/- 3.4%      significant
    spectral-norm:     *11.0x as slow*     0.2ms +/- 226.0%     2.2ms +/- 13.7%     significant

  regexp:              *1.098x as slow*    6.1ms +/- 3.7%      6.7ms +/- 5.2%      significant
    dna:               *1.098x as slow*    6.1ms +/- 3.7%      6.7ms +/- 5.2%      significant

  string:              *1.46x as slow*    50.4ms +/- 8.5%     73.6ms +/- 1.3%      significant
    base64:            *5.00x as slow*     1.3ms +/- 52.2%     6.5ms +/- 5.8%      significant
    fasta:             *1.71x as slow*     8.3ms +/- 8.2%     14.2ms +/- 3.2%      significant
    tagcloud:          *1.25x as slow*    18.3ms +/- 6.1%     22.8ms +/- 2.0%      significant
    unpack-code:       *1.31x as slow*    16.3ms +/- 12.6%    21.3ms +/- 1.6%      significant
    validate-input:    *1.42x as slow*     6.2ms +/- 10.6%     8.8ms +/- 5.1%      significant