<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>Chrome &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/chrome/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>Windows Creators Update,Firefox 53,Chrome 58リリース──2017年4月のブラウザ関連ニュース</title>
		<link>/myakura/23905/</link>
		<pubDate>Thu, 29 Jun 2017 00:30:07 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=23905</guid>
		<description><![CDATA[連載： WEB標準化動向 (23)4月にはFirefox 53とChrome 58がリリースされました。そして、Windows Creators Updateが一般公開され、Edgeも新しいEdgeHTML 15が搭載さ...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (23)</div><p>4月にはFirefox 53とChrome 58がリリースされました。そして、Windows Creators Updateが一般公開され、Edgeも新しいEdgeHTML 15が搭載されたバージョンに更新されました。</p>

<p>また、Firefoxのリリースサイクルが変更され、新しい機能が実装されてからリリースされるまでの実装が短縮されることになりました。</p>

<h2>Windows Creators Updateリリース、EdgeもEdgeHTML 15に更新 <a id="edgehtml15" data-wpel-link="internal"></a></h2>

<p>4月11日にWindows Creators Updateが公開され、Microsoft Edgeも更新されました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2017/04/11/introducing-edgehtml-15/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">What’s new in Microsoft Edge in the Windows 10 Creators Update</a></li>
</ul>

<p>開いているタブをよけておく機能の追加や、タブのサムネイルを表示するなど、ブラウザとしての使い勝手にも手が入りました。</p>

<p>レンダリングエンジンであるEdgeHTMLもバージョンが15に更新されており、新機能が追加されています。開発ガイドが公開されています。</p>

<ul>
<li><a href="https://aka.ms/devguide_edgehtml_15" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Dev guide &#8211; Microsoft Edge Development</a></li>
</ul>

<p>Payment Request API、CSS Custom Propertiesなどは、Edgeのブログでも過去に取り上げられていますね。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/12/15/payment-request-api-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Simpler web payments: Introducing the Payment Request API</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2017/03/24/css-custom-properties/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Custom Properties in Microsoft Edge</a></li>
</ul>

<p><a href="https://wicg.github.io/IntersectionObserver/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Intersection Observer</a>の実装はうれしいですね。これは要素とブラウザの表示領域が交差したことを検知するAPIで、画像などの遅延ロードやパララックス的な表現の実装に役立ちます。FRESH!のパフォーマンス改善手法のひとつとしても取り上げられました。</p>

<ul>
<li><a href="https://developers.cyberagent.co.jp/blog/archives/6057/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FRESH! Web パフォーマンス改善 〜クライアントサイド編〜 | CyberAgent Developers Blog</a></li>
</ul>

<p>JavaScriptでは、Async Functions（<code>async</code>/<code>await</code>）の実装がうれしいです。今回Edgeがサポートしたので、主要ブラウザの最新バージョンすべてが対応しました。</p>

<h3>目立たない機能の実装も…あるかも</h3>

<p>Dev Guideの下に、実装されたAPIの一覧があったので、ブログなどでは取り上げられない機能のうち、気になったものをチェックしました。</p>

<ul>
<li><code>Element.closest()</code>、<code>Element.matches()</code>の実装</li>
<li><code>text-combine-upright</code>プロパティ（接頭辞なし）の実装</li>
<li><code>outline-offset</code>プロパティの実装</li>
<li><code>-webkit-text-stroke</code>プロパティとサブプロパティの実装</li>
<li><code>translate</code>、<code>scale</code>、<code>rotate</code>プロパティの実装</li>
</ul>

<p>最後の<code>translate</code>、<code>scale</code>、<code>rotate</code>プロパティですが、これはCSS Transformsの変換関数だった<code>translate()</code>、<code>scale()</code>、<code>rotate()</code>をプロパティ化したものです。プロパティになったので記述の短縮になりますし、書き順で結果が変わってしまうことのある<code>translate</code>プロパティでの指定よりも、意図した効果を実現しやすくなります。</p>

<p>すでにChromeで実装されており、Edgeでの実装もとてもうれしい…と書いていたのですが、手元でちょっと試したところ未知のプロパティとなってしまいました…秋の新しいバージョンに期待します。</p>

<h2>Firefoxのリリースプロセスに変更、Auroraチャンネルが廃止 <a id="firefox-dawn-project" data-wpel-link="internal"></a></h2>

<p>4月18日より、Firefoxのリリースサイクルが変更されました。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Simplifying Firefox Release Channels and Improving Developer Edition’s Stability</a></li>
<li><a href="http://release.mozilla.org/firefox/release/2017/04/17/Dawn-Project-FAQ.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Dawn project or the end of Aurora</a></li>
</ul>

<p>これまでのFirefoxは、「Nightly → Aurora → Beta → Release」と4つのチャンネルに分かれていました。このうち、Auroraチャンネルが廃止され、「Nightly → Beta → Release」と、1サイクル短くなります。これにより、新しく実装された機能が手元に届くまでの期間が、これまでより1サイクルぶん（6〜8週）短くなります。</p>

<p>Auroraチャンネルはこれまで、Developer Editionという名前のビルドとして提供されていました。Developer Editionというシステムは廃止されないようですが、中身はBetaチャンネルになります。Beta版とのリリースとの違いは、Developer Editionはこれまで通り異なるプロファイルが作られることなどにあります。</p>

<p>Auroraチャンネルの廃止によって、4月19日にAuroraチャンネルに移行予定だったFirefox 55は次のサイクルまでNightlyに留まります。Nightlyが2サイクル分続くので、Firefox 55で導入される機能の数がいつもより増えるかもしれませんね。</p>

<h2>Firefox 53リリース <a id="firefox-53" data-wpel-link="internal"></a></h2>

<p>4月19日に、Firefox 53がリリースされました。</p>

<ul>
<li><a href="https://www.mozilla.org/en-US/firefox/53.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox — Notes (53.0) — Mozilla</a></li>
<li><a href="https://hacks.mozilla.org/2017/04/firefox-53-quantum-compositor-compact-themes-css-masks-and-more/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 53: Quantum Compositor, Compact Themes, CSS Masks, and More ★ Mozilla Hacks</a></li>
</ul>

<p>今バージョンからWindows XPとVistaのサポートがされなくなった（Firefox 52 ESRのサポートに移行）ほか、Macでは64ビット版のみになったことでアプリケーションのファイルサイズが減少しました。UIまわりでは、パーミッション関連のUIが改善されています。</p>

<p>また、Firefox Developers Editionのテーマだった「Compact」テーマがリリース版にも同梱されました。</p>

<div id="attachment_23907" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-640x327.png" alt="スクリーンショット：FirefoxのCompact Lightテーマ" width="640" height="327" class="size-large wp-image-23907" srcset="/wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-640x327.png 640w, /wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-300x153.png 300w, /wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08-207x106.png 207w, /wp-content/uploads/2017/06/Screen-Shot-2017-06-26-at-17.04.08.png 724w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">グラデーションがなくなりフラットになった。画像はLightだがDarkテーマも。</p></div>

<p>レンダリングエンジン周りでは、以下のあたらしい機能がサポートされています。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/Firefox/Releases/53" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 53 for developers &#8211; Mozilla | MDN</a></li>
</ul>

<h3>CSS Textの実装で日本語の扱いが向上 <a id="text3-segbreak" data-wpel-link="internal"></a></h3>

<p>Firefox 52から部分的にサポートされていたのですが、CSS Text Level 3の「<a href="https://drafts.csswg.org/css-text/#line-break-transform" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Segment Break Transformation Rules</a>」が実装され、日本語や中国語の文字間などに改行がある際の処理が変更されました。</p>

<p>Webページを表示するとき、HTML中の改行は半角スペースに変換されて表示されます。</p>

<p></p><pre class="crayon-plain-tag">&lt;p&gt;Hello↵
World&lt;/p&gt;</pre><p></p>

<p>こういう風に、改行前後に空白がなくても、「HelloWorld」ではなく「Hello World」と表示されます。この処理、単語の区切りに空白を使う言語ではよいのですが、日本語などでは不自然な箇所で空白が入ってしまい煩わしいです。</p>

<p>CSS Text Level 3では、改行前後の文字を見て、それが日本語や中国語のものであれば、その改行を除去して扱うという仕様が加わりました。以下のエントリで細かくまとめられています。</p>

<ul>
<li><a href="http://maiha.hatenablog.jp/entry/2017/04/10/firefox52-segment-break-transformation-rules" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">区分分断の変換規則 &#8211; おいしい</a></li>
</ul>

<p>この仕様の実装によって日本語内での改行が省かれるので、改行がつくる空白に依存しているコンテンツがあれば、見た目に影響がでるかと思います。</p>

<h3>display: flow-root <a id="display-flow-root" data-wpel-link="internal"></a></h3>

<p><code>display</code>プロパティの値に<code>flow-root</code>が加わりました。<code>float</code>の解除には<code>::after</code>を使う、<code>display: table</code>を使うなどがありましたが、ちゃんとした方法になります。</p>

<h3><a id="css-alignment-place-props" data-wpel-link="internal"></a></h3>

<p>CSS Alignmnent Level 3の<code>place-items</code>, <code>place-self</code>, <code>place-content</code>がサポートされました。FlexboxやGridで使われる<code>align-items</code>/<code>align-self</code>/<code>align-content</code>と<code>justify-items</code>/<code>justify-self</code>/<code>justify-content</code>をまとめて指定するプロパティです。</p>

<h3>caret-colorプロパティ <a id="caret-color" data-wpel-link="internal"></a></h3>

<p>先月リリースされたChrome 57でサポートされた、<code>caret-color</code>プロパティがFirefoxにも導入されました。<a href="https://html5experts.jp/myakura/22818/#caret-color" data-wpel-link="internal">3月にリリースされたChrome 57でサポート</a>されており、そちらで簡単に取り上げています。</p>

<h3><a id="css-transition-events" data-wpel-link="internal"></a></h3>

<p>CSS Transitions仕様に追加された<code>transitionstart</code>, <code>transitionrun</code>, <code>transitioncancel</code>イベントがサポートされました。MozillaのBrian Birtlesさんのブログエントリで、導入の経緯も含め簡単に紹介されています。</p>

<ul>
<li><a href="https://birtles.wordpress.com/2016/12/27/mozanime-in-2016/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MozAnime in 2016 | Nothing new</a></li>
</ul>

<h3>その他 <a id="etc-in-firefox-53" data-wpel-link="internal"></a></h3>

<p>アルファチャンネルを持つWebMがサポートされました。<a href="https://simpl.info/videoalpha/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chromeチームがつくったデモ</a>で確認できます（だいぶ気味の悪いデモですが…）</p>

<p>ビデオ関連では、<code>video</code>要素などの<code>play()</code>メソッドが<code>Promise</code>を返すようになりました。</p>

<p><a href="https://w3c.github.io/uievents/#event-type-auxclick" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>auxclick</code>イベント</a>が実装されました。主要なボタン以外のボタンがクリックされたときなどに発火するイベントです。ChromeもChrome 55から実装しています。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/10/auxclick" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">auxclick is Coming to Chrome 55</a></li>
</ul>

<h2>Chrome 58リリース <a id="chrome-58" data-wpel-link="internal"></a></h2>

<h3>abbrのデフォルトスタイルが変更に <a id="abbr-text-decoration" data-wpel-link="internal"></a></h3>

<p>略語をマークアップする<code>abbr</code>要素のデフォルトスタイルが変更され、CSS3の<code>text-decoration</code>プロパティを使うようになりました。以下のスタイルが、ChromeのUAスタイルシートに追加されています。</p>

<p></p><pre class="crayon-plain-tag">abbr[title], acronym[title] {
    text-decoration: dotted underline;
}</pre><p></p>

<p>FirefoxもFirefox 40で変更されています。</p>

<ul>
<li><a href="https://www.mitsue.co.jp/knowledge/blog/frontend/201505/18_0954.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 40 で abbr 要素のデフォルトスタイルが変更 | フロントエンドBlog | ミツエーリンクス</a></li>
</ul>

<p>多くはないと思いますが、使われているサイトでは、二重線になってしまうケースがあるかもしれません。</p>

<h3>color-gamut媒体特性のサポート <a id="color-gamut" data-wpel-link="internal"></a></h3>

<p>メディアクエリーの<code>color-gamut</code>媒体特性がサポートされました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/03/chrome-58-media-updates#colorgamut" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">color-gamut media query ― Media Updates in Chrome 58</a></li>
</ul>

<p><code>color-gamut</code>はディスプレイの色域が特定ものにマッチするかを調べる媒体特性で、<a href="https://html5experts.jp/myakura/22818/#safari-css-wide-gamut-colors" data-wpel-link="internal">Safari 10.1でサポート</a>されています。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Firefox, Chrome, SafariがCSS Gridに一斉対応ほか──2017年2月と3月のブラウザ関連ニュース</title>
		<link>/myakura/22818/</link>
		<pubDate>Thu, 13 Apr 2017 04:00:44 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=22818</guid>
		<description><![CDATA[連載： WEB標準化動向 (22)2月はブラウザのリリースがなかったのですが、3月にはFirefox 52, Chrome 57, Safari 10.1がリリースされました。いくつかのブラウザに共通して大きな機能追加が...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (22)</div><p>2月はブラウザのリリースがなかったのですが、3月にはFirefox 52, Chrome 57, Safari 10.1がリリースされました。いくつかのブラウザに共通して大きな機能追加があったので、まずはそこから紹介します。個々のリリースについては、そのあとで取り上げます。</p>

<h2>Firefox, Chrome, SafariがCSS Gridに一斉対応 <a id="css-grid-in-fx-cr-sf" data-wpel-link="internal"></a></h2>

<p>CSS Grid LayoutがFirefox 52, Chrome 57, Safari 10.1で有効になりました。長らく試験的な実装状態が続いていたのですが、タイミングをはかったかのように一斉に使えるようになりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/01/css-grid" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Grid – Table layout is back. Be there and be square.  |  Web  |  Google Developers</a></li>
<li><a href="https://webkit.org/blog/7434/css-grid-layout-a-new-layout-module-for-the-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Grid Layout: A New Layout Module for the Web | WebKit</a></li>
</ul>

<p>CSS Grid Layoutは、かなり強力なレイアウト用の仕様です。
ちょうど、HTML5 Experts.jpのトップページがCSS Gridの説明に都合良さそうなので、ちょっと書きながら紹介しようと思います。</p>

<div id="attachment_22837" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/hx-640x427.png" alt="スクリーンショット：HTML5 Experts.jpのトップページ" width="640" height="427" class="size-large wp-image-22837" srcset="/wp-content/uploads/2017/04/hx.png 640w, /wp-content/uploads/2017/04/hx-300x200.png 300w, /wp-content/uploads/2017/04/hx-207x138.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">HTML5 Experts.jpのトップはグリッドレイアウトを意識した見た目になっている</p></div>

<p>HTML5 Experts.jpのトップページは、ロゴやサイドバーなどのブロックが、15pxの間隔をおいて配置されています。<br />
ちょっと線を引いてみましょう。</p>

<div id="attachment_22838" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/hxgridlines-640x440.png" alt="スクリーンショット：HTML5 Experts.jpのトップページにグリッドの線をひいた" width="640" height="440" class="size-large wp-image-22838" srcset="/wp-content/uploads/2017/04/hxgridlines.png 640w, /wp-content/uploads/2017/04/hxgridlines-300x206.png 300w, /wp-content/uploads/2017/04/hxgridlines-207x142.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">グリッドのガイド線を引いた。線で区切られた領域に各パーツが収まっているのがよくわかる</p></div>

<p>CSS Gridも同様に、配置する基準となる線を定義し、その線と線で区切られた領域に、コンテンツを配置します。Photoshopでガイドをひいて、その中で矩形選択をするようなかんじでしょうか。</p>

<p>現在のトップページをCSS Gridで書くと、このようなかんじになります。</p>

<p></p><pre class="crayon-plain-tag">body {
  display: grid;

  /* 縦線をひく */
  grid-template-columns: 1fr 290px 430px 290px 1fr;

  /* 横線をひく */
  grid-template-rows: 210px 60px 1fr /* 以降は割愛 */;

  /* 隙間を定義すると、隙間分の線を引かなくてよいので楽 */
  grid-gap: 15px;
}

#logo {
  /* 横の配置、2番目の線（1番目の線は左端）から3番目の線まで */
  grid-column: 2 / 3;

  /* 縦の配置、1番目の線（上端）から2番目の線まで */
  grid-row: 1 / 2;
}
...</pre><p></p>

<p>枠だけですが、以下にコードを置いてみました。</p>

<ul>
<li><a href="https://jsfiddle.net/u73q559r/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">https://jsfiddle.net/u73q559r/</a></li>
</ul>

<p>CSS Gridは機能が強力なぶん、構文も複雑です。先程書いたのは一例で、ほかにも線に名前をつけたり、アスキーアートのような構文でグリッドのセルを定義できたりします。</p>

<p>ドキュメンテーションやチュートリアルのサイトもすでにあるので、それを参考にしてみましょう。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Grids" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grids &#8211; Learn web development | MDN</a></li>
<li><a href="http://gridbyexample.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grid by Example</a></li>
<li><a href="http://labs.jensimmons.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Jen Simmons | Labs</a></li>
<li><a href="http://cssgridgarden.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Grid Garden</a></li>
</ul>

<p>このうち、Grid Gardenは、CSS Gridの構文の一部をゲームで学べるサイトです。入門にちょうどよいかと思います。</p>

<p>また、Firefoxの開発者ツールには、CSS Gridインスペクタが搭載されました。グリッドの線や隙間を視覚的に確認できてとても便利です。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_grid_layouts" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Examine grid layouts with the CSS Grid Inspector &#8211; Firefox Developer Tools | MDN</a></li>
</ul>

<p>CSS Gridを使う場合、コンポーネントの見た目とレイアウトを、コード上ではっきり分離しないと扱いづらくなるので、マークアップやCSS設計にもいろいろ影響を与えるだろうと感じています。気が向いたら、取り上げるかもしれません。</p>

<h2>Firefox, ChromeではWebAssemblyも有効に <a id="wasm-shipped-in-fx-cr" data-wpel-link="internal"></a></h2>

<p>こちらはFirefoxとChromeのみですが、WebAssemblyが有効になりました。</p>

<p>WebAssemblyについては、清水さんの連載を読んでいただくことにして、説明は割愛します。</p>

<ul>
<li><a href="https://html5experts.jp/chikoski/18964/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― JavaScriptが動く仕組み</a></li>
<li><a href="https://html5experts.jp/chikoski/18980/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― asm.jsの仕組みとコーディング例</a></li>
<li><a href="https://html5experts.jp/chikoski/22494/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― C / C++をasm.jsに変換するツールEmscripten</a></li>
<li><a href="https://html5experts.jp/chikoski/22523/" data-wpel-link="internal">Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解 ― asm.jsを高速に動作させる新しいコンパイラーターゲットWASMとは？</a></li>
</ul>

<p>Mozilla Hacksでも2月にWebAssemblyの特集が組まれています。JITコンパイラやアセンブリの話から始まるなど、読み物としても面白いものになっています。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A cartoon intro to WebAssembly</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A crash course in just-in-time (JIT) compilers</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/a-crash-course-in-assembly/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">A crash course in assembly</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/creating-and-working-with-webassembly-modules/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Creating and working with WebAssembly modules</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/what-makes-webassembly-fast/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">What makes WebAssembly fast?</a></li>
<li><a href="https://hacks.mozilla.org/2017/02/where-is-webassembly-now-and-whats-next/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Where is WebAssembly now and what’s next?</a></li>
</ul>

<p>この特集の他にも、asm.jsと比較しWebAssemblyが速い理由や、WebAssembly Explorerというツールの紹介もされています。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2017/03/why-webassembly-is-faster-than-asm-js/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Why WebAssembly is Faster Than asm.js</a></li>
<li><a href="https://hacks.mozilla.org/2017/03/previewing-the-webassembly-explorer/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Previewing the WebAssembly Explorer</a></li>
</ul>

<p>MDNにもWebAssemblyのドキュメントがまとめられており、日本語訳も有志によって進められているようです。</p>

<ul>
<li><a href="https://developer.mozilla.org/ja/docs/WebAssembly" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly | MDN</a></li>
<li><a href="https://developer.mozilla.org/ja/docs/WebAssembly/Concepts" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly のコンセプト</a></li>
</ul>

<h2>Firefox 52 <a id="firefox-52" data-wpel-link="internal"></a></h2>

<p>3月7日に、Firefox 52がリリースされました。Captive portal（Wi-Fiサービスのログインページ）の検出が追加されたり、HTTPなページでパスワードを扱っている場合警告が出たり、Flash以外のNPAPIプラグイン（AcrobatやSilverlight、Javaなど）が無効にされたりと、セキュリティ周りの機能強化が目立ちます。</p>

<p>とはいえ、フロントエンド周りの機能強化も、先述したCSS GridとWebAssemblyサポートに加えて、以下のようなものがあります。</p>

<ul>
<li><a href="https://developer.mozilla.org/ja/Firefox/Releases/52" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 52 for developers</a></li>
</ul>

<h3>space-evenly <a id="space-evenly-in-flexbox" data-wpel-link="internal"></a></h3>

<p>Flexboxの<code>justify-content</code>で<a href="https://drafts.csswg.org/css-align-3/#valdef-align-content-space-evenly" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>space-evenly</code>という新しい値</a>がサポートされました。</p>

<p><a href="https://drafts.csswg.org/css-align-3/#valdef-align-content-space-around" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>space-around</code></a>となにが違うかというと、<code>space-around</code>では連続したアイテム間では空白が左右のそれの倍になってしまうのですが、<code>space-evenly</code>では「even（均等）」と名のつく通り、空白の大きさが等しくなります。仕様書の画像がわかりやすいです。</p>

<div id="attachment_22842" style="width: 514px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/space-around-vs-space-evenly.png" alt="justify-contentプロパティなどに指定する各種値のレンダリングの違いを比較した画像" width="504" height="218" class="size-full wp-image-22842" srcset="/wp-content/uploads/2017/04/space-around-vs-space-evenly.png 504w, /wp-content/uploads/2017/04/space-around-vs-space-evenly-300x130.png 300w, /wp-content/uploads/2017/04/space-around-vs-space-evenly-207x90.png 207w" sizes="(max-width: 504px) 100vw, 504px" /><p class="wp-caption-text">space-evenlyのほうがspace-aroundよりも使われそう</p></div>

<h3>CSS Color Level 4の<code>rgb()</code>と<code>hsl()</code> <a id="color4-notation" data-wpel-link="internal"></a></h3>

<p>CSS Color Level 4の<code>rgb()</code>, <code>hsl()</code>関数表記が実装されました。「もとからあったじゃないか」と思う方しかいないと思いますが、CSSお得意の構文変更です。</p>

<p>これまでの<code>rgb()</code>や<code>hsl()</code>は、それぞれの色の値をカンマで指定していました。</p>

<p>それが空白区切りになりました。</p>

<p></p><pre class="crayon-plain-tag">color: rgb(128 90 0);</pre><p></p>

<p>また、整数値しか取れなかったのが小数も受け入れるようになりました。<code>hsl()</code>については、これまで数値でしか指定できなかった色相を、角度（<code>deg</code>など）を使って指定可能になりました。</p>

<p></p><pre class="crayon-plain-tag">color: rgb(111.4 128 0.0);
color: hsl(120deg 100% 30%);</pre><p></p>

<p>そして、これまで別の関数表記だった<code>rgba()</code>, <code>hsla()</code>の機能を統合し、<code>rgb()</code>, <code>hsl()</code>からアルファを指定できるようになりました。アルファはスラッシュで区切り指定します。また、これまでは数値のみの指定でしたが、パーセンテージでも指定可能となりました。</p>

<p></p><pre class="crayon-plain-tag">color: rgb(128 90 0 / 50%);</pre><p></p>

<p>構文が変わったと書きましたが、互換性という名目で古い構文も引き続き定義されるので、移行しなければならないというわけではありません。</p>

<h3>ES2016, ES2017のサポート <a id="es-in-spidermonkey" data-wpel-link="internal"></a></h3>

<p>JavaScriptでは、ES2016やES2017の以下の機能が実装されました。</p>

<ul>
<li>Exponentiation operator（<code>**</code>）</li>
<li>Destructuring rest parameters</li>
<li>Async Functions（<code>async</code>/<code>await</code>）</li>
<li>Trailing commas in functions</li>
</ul>

<p>ES2016以降の実装について、ここ数リリースでのまとめも公開されています。</p>

<ul>
<li><a href="https://blog.mozilla.org/javascript/2017/02/22/ecmascript-2016plus-in-firefox/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ECMAScript 2016+ in Firefox</a></li>
</ul>

<p>現在はまだ提案であるAsync Iteratorなどの実装も進められているようです。楽しみですね。</p>

<h3>新しいResponsive Design Modeになった開発者ツール <a id="rdm-in-fx-devtools" data-wpel-link="internal"></a></h3>

<p>開発者ツールでは、Responsive Design Modeが強化され、モバイル環境のエミュレーションがより細かく行えるようになりました。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2016/11/new-responsive-design-mode-rdm-lands-in-firefox-dev-tools/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New Responsive Design Mode: RDM Lands in Firefox Dev Tools</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Responsive_Design_Mode" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Responsive Design Mode &#8211; Firefox Developer Tools | MDN</a></li>
</ul>

<p>UIが変わったほか、回線環境のスロットリングと、デバイスピクセル比のカスタマイズ、デバイスのプリセットなどが追加されました。回線のスロットリングができるようになったので、回線速度のレンダリングへの影響を検証しやすくなりました。</p>

<div id="attachment_22839" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51-640x395.png" alt="スクリーンショット：Firefox 52の開発者ツールで登場した新しいResponsive Design Mode" width="640" height="395" class="size-large wp-image-22839" srcset="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51.png 640w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51-300x185.png 300w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-01.15.51-207x128.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">Nexus 5をエミュレートすると、画面サイズやデバイスピクセル比はもちろん、UA文字列も切り替わる</p></div>

<p>ほか、Responsive Design Modeではありませんが、アニメーションパネルではイージングの視覚化も行われるようになりました。</p>

<ul>
<li>
<a href="https://hacks.mozilla.org/2016/11/visualize-animations-easing-in-devtools/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Visualize animations easing in DevTools</a></li>
</ul>

<p>同等の機能はChrome DevToolsにもだいぶ前からあるのですが、Escを押して現れるドロワーを開き、そこからAnimationタブを開くなど、機能への動線がよくなかったりします。</p>

<h2>Chrome 57 <a id="chrome-57" data-wpel-link="internal"></a></h2>

<p>Chrome 57がリリースされました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/03/nic57" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New in Chrome 57</a></li>
</ul>

<p>フロントエンド周りの機能強化は、先述したCSS GridとWebAssemblyサポート以外に以下のようなものがあります。</p>

<h3>text-decorationのサブプロパティが実装 <a id="text-decoration-props" data-wpel-link="internal"></a></h3>

<p>CSS Text Level 3の<code>text-decoration</code>プロパティが実装され、下線の色やスタイルを変更可能になりました。</p>

<p>これまでは<code>border</code>を使ってなんとかするハックだったので、これはうれしいですね。</p>

<p></p><pre class="crayon-plain-tag">/* リンクの下線を青色の点線にする */
:any-link {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: slateblue;
}
/* text-decorationがショートハンドになったため、以下のようにも書ける */
:any-link {
  text-decoration: underline dotted slateblue;
}</pre><p></p>

<p>Firefoxがだいぶ前から（接頭辞つきですが）サポートしており、続いて何年か前にSafariが、そして今回ようやくChromeでもサポートされました。</p>

<p>日本語では特に影響がありませんが、<code>text-decoration-skip</code>プロパティも一部が実装されました。<code>text-decoration-skip: ink</code>と指定すると、ディセンダなどのある文字（gやjなど）に下線が重なるのを防げます。</p>

<div id="attachment_22840" style="width: 460px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17.png" alt="text-decoration-skip: inkの例。「HTML5 Experts.jp」という文字の「p」と「j」のディセンダを避けて下線が引かれている" width="450" height="137" class="size-full wp-image-22840" srcset="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17.png 450w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17-300x91.png 300w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.34.17-207x63.png 207w" sizes="(max-width: 450px) 100vw, 450px" /><p class="wp-caption-text">フォントサイズが大きいととくにうれしい</p></div>

<h3>caret-colorプロパティ <a id="caret-color" data-wpel-link="internal"></a></h3>

<p>CSS UIで定義されている<a href="https://drafts.csswg.org/css-ui/#caret-color" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>caret-color</code>プロパティ</a>がサポートされました。キャレットの色を変更できます。</p>

<p></p><pre class="crayon-plain-tag">input {
  caret-color: orange;
}</pre><p></p>

<p>ファンシーな機能ではありますが、入力欄の色が薄い色になったときにコントラスト比が保てないという問題への対応でもあります。</p>

<div id="attachment_22841" style="width: 346px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19.png" alt="スクリーンショット：caret-colorにorangeを指定したinput要素" width="336" height="58" class="size-full wp-image-22841" srcset="/wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19.png 336w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19-300x52.png 300w, /wp-content/uploads/2017/04/Screen-Shot-2017-04-11-at-19.41.19-207x36.png 207w" sizes="(max-width: 336px) 100vw, 336px" /><p class="wp-caption-text">細くて見えないかも。なおキャレットの太さなどを指定するプロパティはありません</p></div>

<h3>V8 5.7ではpadStart/padEndが実装、高速化も <a id="v8-improvements" data-wpel-link="internal"></a></h3>

<p>Chromeのバージョンにあわせ、V8も5.7になりました。</p>

<ul>
<li><a href="https://v8project.blogspot.jp/2017/02/v8-release-57.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">V8 Release 5.7</a></li>
</ul>

<p>新機能については、文字列の詰めを行う<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>padStart()</code></a>と<a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>padEnd()</code></a>の導入が主でしょうか。</p>

<p>以前、<code>padStart()</code>と同様のことをする<a href="https://cpplover.blogspot.jp/2016/03/npmkik.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">left-padというモジュールが消えてnpmが大混乱になった</a>ので、Nodeで使えると依存を減らせて嬉しいかもしれません。</p>

<p><code>padStart()</code>, <code>padEnd()</code>は、Firefox 48, Safari 10で実装済みで、EdgeでもCreators UpdateのEdge（EdgeHTML 15）でサポートされます。</p>

<p>他に取り上げられているのは、パフォーマンスの向上です。
正規表現周りのパフォーマンス向上については、独立したエントリが1月に公開されています。</p>

<ul>
<li><a href="https://v8project.blogspot.jp/2017/01/speeding-up-v8-regular-expressions.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Speeding up V8 Regular Expressions</a></li>
</ul>

<p>また、V8チームはここ数バージョンほどES2015の実行速度改善に取り組んでおり、そのエントリも公開されています。</p>

<ul>
<li><a href="https://v8project.blogspot.jp/2017/02/high-performance-es2015-and-beyond.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">High-performance ES2015 and beyond</a></li>
</ul>

<p>V8 5.7時点でES5と比べた実行速度差は、平均で1.86倍、中央値で1.3倍にまで減少したとのことです。</p>

<p>まだ差があるため「やっぱりBabelか…」という話になるかもしれません。</p>

<p>が、コンパイル後のES5のコードの容量が増大すれば、JavaScriptのパースなどにコストがかかり、Webアプリの最初のレンダリングまでの時間に影響します。コードの容量と実行速度、どちらも与える影響を鑑みた上で選択できるといいですね。</p>

<h2>Safari 10.1リリース <a id="safari-10_1" data-wpel-link="internal"></a></h2>

<p>macOS 10.12.4とiOS 10.3がリリースされ、Safari 10.1もリリースとなりました。Safari 10.1で新しく入った機能が、AppleのドキュメンテーションやWebKitのブログで紹介されています。</p>

<ul>
<li><a href="https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10.1</a></li>
<li><a href="https://webkit.org/blog/7477/new-web-features-in-safari-10-1/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New Web Features in Safari 10.1</a></li>
</ul>

<p>いくつか紹介します。</p>

<h3>Custom Elements v1 <a id="safari-custom-elements-v1" data-wpel-link="internal"></a></h3>

<p>Safari 10のShadow DOM v1サポートに引き続き、Custom Elements v1もサポートされました。</p>

<ul>
<li><a href="https://webkit.org/blog/7027/introducing-custom-elements/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing Custom Elements</a></li>
</ul>

<h3>HTMLのForm Validation <a id="safari-html-form-validation" data-wpel-link="internal"></a></h3>

<p>ついにHTMLのForm ValidationがSafariでもフルサポートされました。</p>

<ul>
<li><a href="https://webkit.org/blog/7099/html-interactive-form-validation/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML Interactive Form Validation</a></li>
</ul>

<p>HTML5から<code>type=email</code>といった新しい<code>input</code>の型や、<code>required</code>属性、<code>pattern</code>属性など、フォームの入力内容を調査する属性が導入されました。</p>

<p>検証項目に違反する入力内容があると、フォーム送信前にブロックされるという仕様なのですが、Safariは長らく対応していませんでした。DOMから入力内容がvalidかをチェックはできるのですが、UI上のサポートがなかったのがうれしくありません。</p>

<p>Safari 10.1では、他のブラウザと並んでフォーム送信時のチェック（ブロック）を行うようになったほか、好きなタイミングでフォームの検証状態を通知できる<code>reportValidity()</code>メソッドも一緒にサポートしました。こちらはBlinkのみで長らくサポートされていたもので、最近になりFirefoxもサポートしたものです。</p>

<h3>広色域の色指定 <a id="safari-css-wide-gamut-colors" data-wpel-link="internal"></a></h3>

<p>新しいデバイスにはDisplay P3という色域の広いディスプレイを導入しているAppleですが、その恩恵をWebコンテンツでも受けられるべく、sRGBを基準としているCSSの色域を拡張する提案を行い、その一部を実装しました。</p>

<ul>
<li><a href="https://webkit.org/blog/6682/improving-color-on-the-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Improving Color on the Web | WebKit</a></li>
</ul>

<p>実装されたのは、<a href="https://drafts.csswg.org/css-color/#color-function" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>color()</code>関数</a>とメディアクエリの<a href="https://drafts.csswg.org/mediaqueries-4/#color-gamut" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>color-gamut</code>媒体特性</a>です。</p>

<p><code>color()</code>は、RGB各色の度合いを色域を含め指定できる新しい関数です。</p>

<p></p><pre class="crayon-plain-tag">color(display-p3 0 1.0 0)</pre><p></p>

<p>このように指定すると、P3ディスプレイでの緑100%となり、sRGBでは表現できない、より濃い緑を発色できます。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Firefox 51・Chrome 56リリース、Safari 10.1発表、Windows 10 Creator&#8217;s UpdateのEdge、WebKitほか──2017年1月のブラウザ関連ニュース</title>
		<link>/myakura/22272/</link>
		<pubDate>Tue, 07 Feb 2017 03:04:00 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[WebRTC]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=22272</guid>
		<description><![CDATA[連載： WEB標準化動向 (21)2017年1月は新年早々いろいろ動きがありました。Firefox 51とChrome 56のリリース、Safari 10.1発表、Windows 10 Creator’s Updateの...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (21)</div><p>2017年1月は新年早々いろいろ動きがありました。Firefox 51とChrome 56のリリース、Safari 10.1発表、Windows 10 Creator’s UpdateのEdge、WebKitにWebRTCとCredential Management API、Facebookとブラウザベンダー協力の話など、注目ニュースが満載です！</p>

<h2>Firefox 51リリース <span id="firefox51"></span></h2>

<p>1月24日に、Firefox 51がリリースされました。</p>

<ul>
<li><a href="https://blog.mozilla.org/blog/2017/01/24/gets-better-video-gaming-non-secure-web-warning/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox Gets Better Video Gaming and Warns of Non-Secure Websites | The Mozilla Blog</a></li>
<li><a href="https://www.mozilla.jp/firefox/51.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 51.0 リリースノート</a></li>
</ul>

<p><a href="https://hacks.mozilla.org/2017/01/webgl-2-lands-in-firefox/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebGL 2のサポート</a>や、<a href="https://blog.mozilla.org/security/2017/01/20/communicating-the-dangers-of-non-secure-http/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">非HTTPSなページ上のパスワードフォーム入力についてのUI改善</a>が目玉ですが、すでに知っているところだと思うので、地味なところをとりあげます。</p>

<ul>
<li><a href="https://developer.mozilla.org/ja/Firefox/Releases/51" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 51 for developers &#8211; Mozilla | MDN</a></li>
</ul>

<p><a href="https://drafts.csswg.org/css-pseudo/#placeholder-pseudo" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>::placeholder</code> 疑似要素</a>と <a href="https://drafts.csswg.org/selectors/#placeholder" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>:placeholder-shown</code> 擬似クラス</a>が実装されました。<code>input</code> 要素や<code>textarea</code> 要素の <code>placeholder</code> 属性で指定するプレースホルダ周りのスタイルを調整するためのものです。前者はプレースホルダのテキストを、後者はプレースホルダが表示されているときの要素（<code>input</code> など）を表します。</p>

<p>SVGでは、<a href="https://www.w3.org/TR/2016/CR-SVG2-20160915/linking.html#linkRefAttrs" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>xlink</code> 接頭辞なしの <code>href</code> 属性</a>がサポートされました。これまでSVG内で外部リソースを読み込んだりSVG内の要素を参照する際は、XLinkを使っていました。SVGがXMLのフォーマットというところに由来するのですが、名前空間の扱いの難やHTMLとの親和性などをふまえ、SVG 2.0で名前空間なしの属性が導入されました。</p>

<p>この名前空間なしの <code>href</code> 属性ですが、Internet ExplorerがSVGを初実装したIE9から使えます。SVGを実装するにあたって、検討段階だったSVG 2.0で取り入れたい機能の先行実装をさせたという話を以前SVG WGの人に聞いたことがあります。</p>

<p>SVGまわりでは、<code>tabindex</code> 属性や <code>data-</code> 属性に対応しました。使えなかったのに驚く方もいるかもしれませんが、これらはHTMLのグローバル属性だったので、SVGの要素では使えず、<code>dataset</code> プロパティなどのアクセサリーもなかったのでした。これらもSVG 2.0で導入されたものです。</p>

<h2>Chrome 56リリース <span id="chrome56"></span></h2>

<p>1月25日に、Chrome 56がリリースされました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2017/01/nic56" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New In Chrome 56  |  Web  |  Google Developers</a></li>
</ul>

<p>パフォーマンスの観点から、<a href="https://developers.google.com/web/updates/2017/01/scrolling-intervention" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">タッチイベントハンドラの <code>passive</code> オプションがデフォルトで <code>true</code> に</a>なりました。Android版Chromeでは多くの場合、スクロールがスムーズになるとのことです。</p>

<p>CSSでは、<code>position: sticky</code> が復活しました。むかーしむかし実装されていたのですが、パフォーマンスの観点から削除されていたのでした。<code>scroll</code> イベントを監視しなくてもよくなるので、パフォーマンス向上が期待できる機能です。</p>

<p>Web PaymentsのPayment Request APIに追加された　<a href="https://w3c.github.io/browser-payment-api/#canmakepayment-method" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>canMakePayment()</code>　メソッド</a>がサポートされました。このメソッド、昨年AppleがWebでのApple Payを発表した祭、<a href="https://lists.w3.org/Archives/Public/public-payments-wg/2016Jun/0013.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Paymentsにないものとして上げていたメソッド</a>のひとつです。Web PaymentsのアクティビティにもAppleが関わり、APIの差異を埋めているようなので、今後に期待ですね。</p>

<p>他にも、<a href="https://www.w3.org/TR/css3-background/#the-border-image-repeat" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>border-image-repeat: space</code></a>がサポートされています。これでようやく実装がそろった感じですね。</p>

<h2>Safari 10.1発表 <span id="safari101-announce"></span></h2>

<p>macOS Sierra 10.12.4のベータ版が開発者向けに公開され、Safariが10.1にアップデートすることがわかりました。昨年春にリリースされたSafari 9.1のように、WebKitがアップグレードされ、新しい機能が導入されます。</p>

<ul>
<li><a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10.1</a></li>
</ul>

<p>APIの目玉はCustom Elementsでしょうか。Safari 10でもShadow DOMがサポートされたので、Web Componentsがまたさらに進みます。<br />
ほかにも、Fetch APIやIndexed DB API　2.0, Gamepad APIがサポートされます。Gamepad APIはすこし意外ですね…ブラウザでゲームパッドを使うようなゲームを提供する顧客がいるのでしょうか？</p>

<p>JavaScriptでは、ES2017仕様のAsync Functionsや <code>SharedArrayBuffer</code> に対応します。</p>

<p>HTMLでは、HTML 5のフォームバリデーション機能がついに実装されました。これまでもDOM上では検証していたのですが、invalidな際にフォームの送信をブロックするという挙動を実装していなかったのでした。</p>

<ul>
<li><a href="https://webkit.org/blog/7099/html-interactive-form-validation/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML Interactive Form Validation | WebKit</a></li>
</ul>

<p>CSSではGrid Layoutが有効になります。リリース時期を春とすると、FirefoxやChromeと同時期になります。いっきに使いどころが増えそうです。</p>

<h2>Windows 10 Creator&#8217;s UpdateのEdge <span id="edge-jan2017"></span></h2>

<p>Microsoftのブログが活発に更新され、Windows 10 Creator&#8217;s Updateで提供される各種機能の紹介がされています。<a href="https://html5experts.jp/myakura/21934/" data-wpel-link="internal">先月</a>から引き続きいくつか取り上げます。</p>

<ul>
<li><a href="https://blogs.windows.com/windowsexperience/2017/01/31/microsoft-edge-helps-organize-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edge helps you organize your web &#8211; Windows Experience BlogWindows Experience Blog</a></li>
</ul>

<p>このエントリでは、タブのサムネイルや一時退避といったブラウザのUIの機能（Operaみたいですね）や、EPUB、Payment Requset APIのサポートなど、EdgeHTML 15で目玉になる機能をまとめています。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2017/01/31/introducing-webrtc-microsoft-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing WebRTC 1.0 and interoperable real-time communications in Microsoft Edge &#8211; Microsoft Edge Dev Blog</a></li>
</ul>

<p>WebRTC 1.0は互換性のため実装を始めたもので、あくまでORTCを推奨していくという立場のようです。コーデックもVP8をサポートしましたが、ソフトウェアでコードのため電力消費やCPUの使用はH.264よりも高いとのこと。</p>

<p>他にも、<a href="https://blogs.windows.com/msedgedev/2017/01/10/edge-csp-2/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Content Security Policy Level 2のサポート</a>、<a href="https://blogs.windows.com/windowsexperience/2017/01/27/announcing-windows-10-insider-preview-build-15019-pc/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">フルカラー絵文字のサポート</a>もあるようです。</p>

<h2>WebKitにWebRTCとCredential Management API <span id="webkit-webrtc-credmgmt"></span></h2>

<p>Safari 10.1もうれしいですが、次期メジャーバージョンでも嬉しい機能が入りそうです。</p>

<p>ひとつは、WebRTCです。1月19日に、Appleのエンジニアによって、WebKitにWebRTCのライブラリがチェックインされました。</p>

<ul>
<li><a href="https://trac.webkit.org/changeset/210942" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Changeset 210942 – WebKit — Source/ThirdParty/libwebrtc: [WebRTC] Upload libwebrtc code base ​</a></li>
</ul>

<p>WebRTCについては、<code>getUserMedia()</code> の実装が進んでいましたが、通信周りのAPIは特に進んでいませんでした。EdgeもEdgeHTMLでWebRTC (1.0)を実装しますが、ようやくといったところでしょうか。</p>

<p>コミットログを読むと、Chromeのソースコードをインポートして利用しており、Chromeとの互換性がなかなか期待できそうです。</p>

<p>もうひとつは、Credential Management APIです。1月24日に、AppleのエンジニアがWebKitにCredential Management APIを実装予定という旨のメールをメーリングリストに投稿しています。</p>

<ul>
<li><a href="https://lists.webkit.org/pipermail/webkit-dev/2017-January/028684.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[webkit-dev] Implement Credential Management Level 1</a></li>
</ul>

<p>Credential Management APIはパスワードやソーシャルログインなど、ユーザーの認証情報を抽象化して扱うAPIで、ログイン周りの煩雑さを解消できます。現在はChromeでのみ使えますが、Safariでも使えるようになるとモバイルでのログイン周りがとても便利になりそうです。</p>

<p>次期iPhoneで顔認証が導入されるといった噂を目にしていまし、信憑性が高まった気もします。</p>

<h2>Facebookとブラウザベンダーの協力 <span id="facebook-browsers-caches"></span></h2>

<p>Facebookの開発者ブログに、ブラウザベンダーと協力してFacebookへのリクエストを省力化したという話が掲載されています。あわせて、Chrome、Mozillaの開発者ブログでも紹介されています。</p>

<ul>
<li><a href="https://code.facebook.com/posts/557147474482256" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">This browser tweak saved 60% of requests to Facebook | Engineering Blog | Facebook Code</a></li>
<li><a href="https://blog.chromium.org/2017/01/reload-reloaded-faster-and-leaner-page_26.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chromium Blog: Reload, reloaded: faster and leaner page reloads</a></li>
<li><a href="https://hacks.mozilla.org/2017/01/using-immutable-caching-to-speed-up-the-web/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Using Immutable Caching To Speed Up The Web ★ Mozilla Hacks – the Web developer blog</a></li>
</ul>

<p>Facebookは各種アセットを、ハッシュ付きURL＋長大なキャッシュ有効時間というキャッシュ戦略で運用しています。キャッシュの有効時間が長ければ、ブラウザは再読込の際に同じリソースをダウンロードする確率が低くなるので、ネットワークにやさしいです。</p>

<p>しかし、これまでのHTTPキャッシュでは、ダウンロードは防げても、リクエスト自体は起こってしまっていました。パフォーマンスの観点からもうれしくありません。Facebookが自身のアクセスを解析したところ、全体の60％がそういったリクエストだったそうです。更に調べると、他のブラウザが13％〜22％だったのに対し、Chromeだけは63％ととても高い数値を示していたとのこと。</p>

<p>これを解消しようとFacebookのエンジニアがChromeチームに働きかけ、挙動を変更。結果63％だったものが24％まで減少したとのこと。</p>

<p>Firefoxでは、Chromeと同様の挙動変更を行わない代わりに、<code>Cache-Control: immutable</code> という新しいヘッダの値を実装しました。このヘッダについては、Jxckさんが自身のブログにまとめているのでそちらをご覧ください。</p>

<ul>
<li><a href="https://blog.jxck.io/entries/2016-07-12/cache-control-immutable.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Cache-Control の Immutable 拡張によるリロード時のキャッシュ最適化 | blog.jxck.io</a></li>
</ul>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Chrome 55リリース、Windows 10 Creators Updateほか──2016年12月のブラウザ関連ニュース</title>
		<link>/myakura/21934/</link>
		<pubDate>Tue, 10 Jan 2017 02:08:35 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21934</guid>
		<description><![CDATA[連載： WEB標準化動向 (20)月に一度、前の月にリリースされたブラウザに導入された機能を取り上げるこのシリーズも、先ほど振り返ったところ一年ちょっと続いていたのに気づきました。 2017年も地味に更新していこうと思い...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (20)</div><p>月に一度、前の月にリリースされたブラウザに導入された機能を取り上げるこのシリーズも、先ほど振り返ったところ一年ちょっと続いていたのに気づきました。<br />
2017年も地味に更新していこうと思います。よろしくお願いいたします。</p>

<h2>Chrome 55リリース</h2>

<p>12月1日に、Chrome 55がリリースされました。新機能は、ベータ版が出た際に公開されたエントリにまとめられています。</p>

<ul>
<li><a href="https://developers-jp.googleblog.com/2016/11/chrome-55-beta-input-handling.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: Chrome 55 ベータ版: 入力ハンドリングの改善と async / await 関数</a></li>
</ul>

<p>ECMAScript 2017に導入されるAsync Functionsがサポートされました。導入された <code>async</code>, <code>await</code> というキーワードを使うと、Promiseが関わる非同期処理を同期処理に近いかたちで記述できます。</p>

<ul>
<li><a href="https://developers.google.com/web/fundamentals/getting-started/primers/async-functions?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Async functions &#8211; making promises friendly  |  Web  |  Google Developers</a></li>
</ul>

<p>他のブラウザでもすでに開発版で実装されており、それぞれの開発者向けバージョンでテストできます。Promiseを多用するService Worker内のコードなどは、トランスパイラなしでも利用できますね。</p>

<p>Pointer Eventsも実装されました。Pointer EventsはMicrosoftがW3Cに提出し標準化された、タッチやマウス、ペンなどの入力方式を「ポインタ」としてまとめ扱うイベントです。タッチ＋マウスなアプリを作る際に、別々のイベントモデル用のコードを書く手間が省けるのが利点です。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/10/pointer-events" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pointing the Way Forward  |  Web  |  Google Developers</a></li>
</ul>

<p>ほか、<code>addEventListener()</code> のオプションに <code>once</code> が加わりました。<a href="https://html5experts.jp/myakura/21730/" data-wpel-link="internal">先月のFirefox 50リリースでも取り上げた</a>もので、一度だけ呼び出されるイベントリスナを設定できます。</p>

<h2>Windows 10 Creators UpdateのEdge</h2>

<p>ことし2017年リリースの<a href="https://www.microsoft.com/en-us/windows/upcoming-features" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Windows 10 Creators Update</a>では、Edgeももちろん更新予定です。あたらしくEdgeHTMLに搭載される機能が、Edgeのブログで少しずつ紹介されてきました。</p>

<ul>
<li><a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/21/introducing-brotli-compression-in-microsoft-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edgeでの Brotli 圧縮の導入 | Microsoft Edge Japan</a></li>
<li><a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/20/simpler-web-payments-introducing-the-payment-request-api/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">よりシンプルな Web の決済方法 : Payment Request API の紹介 | Microsoft Edge Japan</a></li>
</ul>

<p>BrotliはWOFF 2.0で使われている圧縮アルゴリズムですが、HTTPでも利用できます。すでにFirefox, Chromeですでにサポートされていますが、ここにEdgeが加わります。</p>

<p>Payment Request APIは、Chrome 53から実装され始めたAPIで、決済情報入力の煩わしさを解消するAPIです。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/07/payment-request?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request API で簡単・高速な決済を実現する  |  Web  |  Google Developers</a></li>
</ul>

<p>Chromeでは今のところAndroid版でしか有効になっていませんが、Edgeではモバイル・デスクトップ両方で有効になるようです。Firefoxも<a href="https://groups.google.com/forum/#!topic/mozilla.dev.platform/n-2o58jcTK8" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">実装を表明</a>しています。</p>

<p>ほか、EdgeHTML 15で導入されるかはわかりませんが、<a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/status/?q=edge%3A%27In+Development%27+edge%3A%27Preview+Release%27" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Platform Statusページで開発中・プレビュー版にある機能の一覧</a>を見ると、Service Workerやその関連API、CSS Custom Properties (Variables)などが並んでいます。これらのアナウンスもあるとうれしいですね。</p>

<h2>2017年はFlashの実行に許可が求められる</h2>

<p>2017年は、多くのベンダーがFlashの自動実行をやめることを宣言しています。12月は、Chrome, EdgeでのFlashの扱いについて、現状や今後の計画が改めて発表されました。</p>

<ul>
<li><a href="https://developers-jp.googleblog.com/2016/12/roll-out-plan-for-html5-by-default.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: HTML5 デフォルト化のリリース計画について</a></li>
<li><a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/19/click-to-run%e3%81%a7%e3%81%ae-flash-%e3%81%ae%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%82%b3%e3%83%b3%e3%83%88%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%ae%e6%8b%a1%e5%bc%b5/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Click-to-Runでの Flash のユーザーコントロールの拡張 | Microsoft Edge Japan</a></li>
</ul>

<p>ChromeはChrome 56より、ページのFlashの実行には基本的に許可を求めるようになります。ただし、それまでアクセスしたページなど、関わり度合いの高いページについては、許可を求められる時期が遅れます。2017年10月からは、新規アクセスしたページのFlashコンテンツについては、許可を求められます。</p>

<p>Edgeについても、Creators Update以降は基本的に許可が必要になります。ただしChromeと似たようなかたちで、初期はFlashのリソース消費度合いを元に例外を設けるようです。あるていど後に、こちらも許可を求めるようになるそうです。</p>

<p>Firefoxも、2017年から許可を設けるとすでに発表しています。</p>

<ul>
<li><a href="https://www.mozilla.jp/blog/entry/10554/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 内での Adobe Flash 使用量を削減します | Mozilla Japan ブログ</a></li>
</ul>

<p>Safariについては、けっこう前のバージョンからFlash Playerが搭載されていません。なのでまずインストールが必要というところですでにある程度ブロックされていると思うのですが、Safari 10からはインストールされていたとしても実行にはユーザーの許可が必要になりました。</p>

<ul>
<li><a href="https://webkit.org/blog/6589/next-steps-for-legacy-plug-ins/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Next Steps for Legacy Plug-ins | WebKit</a></li>
</ul>

<p>Flashを使うコンテンツも少なくなってきましたが、デフォルトでブロックされるようになると、新規に作るサービスではさらに採用が減りそうですね。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Chrome Dev Summit開催、Firefox 50リリースの最新情報を解説──2016年11月のブラウザ関連ニュース</title>
		<link>/myakura/21730/</link>
		<pubDate>Wed, 28 Dec 2016 00:32:53 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21730</guid>
		<description><![CDATA[連載： WEB標準化動向 (19)2016年11月のブラウザ関連ニュースは、サンフランシスコで開催されたChrome Dev Summitと11月15日にリリースされたFirefox 50についてお届けします。 Chro...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (19)</div><p>2016年11月のブラウザ関連ニュースは、サンフランシスコで開催されたChrome Dev Summitと11月15日にリリースされたFirefox 50についてお届けします。</p>

<h2>Chrome Dev Summit開催</h2>

<p>11月はChromeのリリースがありませんでしたが、サンフランシスコにて<a href="https://developer.chrome.com/devsummit/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Dev Summit</a>が開催されました。</p>

<ul>
<li><a href="https://blog.chromium.org/2016/11/chrome-dev-summit-2016-mobile-web-moves.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chromium Blog: Chrome Dev Summit 2016: The Mobile Web Moves Forward</a></li>
</ul>

<p>名前にChromeと冠していますが、トピックはProgressive Web Appsです。Progressive Web Appsが認識され広がりつつある今年は、LyftやCNETのPWA開発の裏側といったケーススタディや、フレームワークを使った際にどうパフォーマンスを見たり改善したりするかといった実践的な話が多かったです。</p>

<p>ビデオも30分くらいのセッションがほとんど多いので、さくさくと観られます。</p>

<ul>
<li><a href="https://www.youtube.com/playlist?list=PLNYkxOF6rcIBTs2KPy1E6tIYaWoFcG3uj" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Dev Summit 2016 &#8211; YouTube</a></li>
</ul>

<h2>Firefox 50リリース</h2>

<p>11月15日に、Firefox 50がリリースされました。</p>

<ul>
<li><a href="https://www.mozilla.jp/firefox/50.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 50.0 リリースノート</a></li>
<li><a href="https://developer.mozilla.org/ja/Firefox/Releases/50" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 50 for developers</a></li>
</ul>

<p>Firefoxもついに50になりました。</p>

<p>訪問済・未訪問を問わないリンクにマッチする <a href="https://drafts.csswg.org/selectors-4/#the-any-link-pseudo" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>:any-link</code> 擬似クラス</a>がサポートされました。<code>a</code> と何が違うのか疑問に思う方がいるかもしれませんが、<code>:link</code>, <code>:visited</code>, <code>:any-link</code> は <code>area</code> や <code>link</code> といった要素型にもマッチしますし、<code>href</code> 属性の有無もふまえます。ちゃんと「リンクされているか」を見るってことですね。</p>

<p>DOMでは、<code>NodeList</code> インターフェースがiterableになり、<code>querySelectorAll()</code> の結果に直接 <code>forEach()</code> などをくっつけられるようになりました。他のブラウザも<a href="https://html5experts.jp/myakura/19326/" data-wpel-link="internal">Chrome 51</a>、Safari 10も対応済みですし、だんだんと使える環境が広がっていますね。</p>

<p>最近のDOM仕様では、<code>addEventListener()</code> の第三引数に <a href="https://dom.spec.whatwg.org/#dictdef-addeventlisteneroptions" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>AddEventListenerOptions</code></a> というディクショナリを取れるようになっているのですが、そのうちの一つ <code>once</code> がサポートされました。jQueryの <code>one()</code> のように、一度だけ呼び出されるイベントリスナを設定できます。</p>

<p>セキュリティ関連では、<code>X-Content-Type-Options: nosniff</code> がサポートされました。ブラウザはサーバから来る <code>Content-Type</code> ヘッダを見てコンテンツの種類を判断しますが、状況や特定のファイルによってはコンテンツの中身を少し見てからその種類を推定したりします。これを「Content sniffing」や「MIME sniffing」といいます。<br />
便利なときもあるのでしょうが、セキュリティ上の懸念があるため、それを無効にするための手立てとして <code>X-Content-Type-Options: nosniff</code> というヘッダがIE8に導入され、Opera, Chromeも追従し、最終的に<a href="https://fetch.spec.whatwg.org/#x-content-type-options-header" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Fetch
仕様に取り込まれました</a>。</p>

<p>このほか、<a href="https://developer.mozilla.org/ja/docs/Web/CSS/border-image-repeat" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>border-image-repeat: space</code></a> や、Chromeが独自に実装していた<a href="https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API/Firefox_support" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FileSystem APIの一部のサポート</a>、<code>dotted</code> もしくは <code>dashed</code> を設定したボックスに <code>border-radius</code> をかけたときの見た目の改善などが行われています。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Firefox 48の新機能、EdgeHTML 14を搭載したMicrosoft Edgeリリース──2016年8月のブラウザ関連ニュース</title>
		<link>/myakura/21074/</link>
		<pubDate>Fri, 23 Sep 2016 01:21:32 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21074</guid>
		<description><![CDATA[連載： WEB標準化動向 (16)2016年8月のブラウザ関連ニュースは、8月2日にリリースされたFirefox 48、8月31日にリリースされたChrome 53について紹介します。 Firefox 48リリース 8月...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (16)</div><p>2016年8月のブラウザ関連ニュースは、8月2日にリリースされたFirefox 48、8月31日にリリースされたChrome 53について紹介します。</p>

<h2>Firefox 48リリース</h2>

<p>8月2日に、Firefox 48がリリースされました。マルチプロセスが状況に応じて有効化されたり、Chrome拡張API互換のWebExtensionsが安定版となったりしました。</p>

<p>Web関連の新機能ですが、Web Animations APIのひとつ <code>Element.animate()</code> がサポートされました。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2016/08/animating-like-you-just-dont-care-with-element-animate/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Animating like you just don’t care with Element.animate</a></li>
</ul>

<p>とても雑に紹介するならば、jQueryの <code>animate()</code> メソッドの標準版です。とはいってもCSSアニメーションとおなじバックエンドを使うため、基本的にjQueryのアニメーションよりもスムーズ・低負荷なものになるはずです。</p>

<p>CSSでは <a href="https://developer.mozilla.org/ja/docs/Web/CSS/text-combine-upright" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>text-combine-upright: all</code></a> がサポートされ、縦中横ができるようになりました。縦中横は日本語の縦書きで、短い桁の数値を一文字分に収めたりするのによく使われています。</p>

<div id="attachment_21075" style="width: 370px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/09/tcu-fx.png" alt="スクリーンショット：「平成28年」という縦書き文字列中の「28」を縦中横にした例" width="360" height="280" class="size-full wp-image-21075" srcset="/wp-content/uploads/2016/09/tcu-fx.png 360w, /wp-content/uploads/2016/09/tcu-fx-300x233.png 300w, /wp-content/uploads/2016/09/tcu-fx-207x161.png 207w" sizes="(max-width: 360px) 100vw, 360px" /><p class="wp-caption-text">通常は横に寝てしまう「28」を縦中横にしたので、ちょっと読みやすくなった</p></div>

<p>開発者ツールには、Firebug由来の機能が追加されました。ほかにも、CSSのルールを編集する際によく使われるプロパティ名が優先的にサジェストされるなど、細かなところの使い勝手が向上しています。</p>

<ul>
<li><a href="https://hacks.mozilla.org/2016/04/developer-edition-48-firebug-features-editable-storage-inspector-improvements-and-more/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Developer Edition 48 – Firebug features, editable storage, inspector improvements and more…</a></li>
</ul>

<h2>EdgeHTML 14リリース</h2>

<p>8月3日にWindows 10 Anniversary Updateがリリースされ、Microsoft EdgeもEdgeHTML 14を搭載した新しいものにアップグレードされました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/08/04/introducing-edgehtml-14/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing EdgeHTML 14 with the Windows 10 Anniversary Update</a></li>
</ul>

<p>このAnniversary Updateで、Edge公開時点のロードマップで言及されていた拡張機能がついに導入されました。こちらもChrome拡張APIと互換となっています。これで拡張を作るモチベーションが多少上がりますね。</p>

<p>EdgeHTML 14で導入されたWeb関連機能は多岐にわたります。Web Notifications APIやWOFF 2.0などはすでに実装・利用されていますが、Fetch APIやES 2015, ES 2016など他のブラウザと同じ時期に実装しているものもあります。また、FIDO 2.0などはEdgeが先行しています。今後の動向も注目です。</p>

<h2>Chrome 53リリース</h2>

<p>8月31日に、Chrome 53がリリースされました。</p>

<p>52でのMac版に続き、Windows版でも見た目がすっきりしました。これについて、リデザインに関わったGoogleのSebastien Gabrielが、その経緯や技術的なところをMediumに投稿しています。</p>

<ul>
<li><a href="https://medium.com/@KounterB/redesigning-chrome-desktop-769aeb5ab987" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redesigning Chrome desktop</a></li>
</ul>

<p>Material Designへの移行にあたり、SVGでおこしたデザインをコードに変換する方法に切り替えたことで、使っていた画像のアセットが大幅に減ったといった話などは面白いですね。</p>

<p>Web関連機能では、新しいShadow DOMのAPI、通称「Shadow DOM v1」が実装されました。</p>

<ul>
<li><a href="https://developers.google.com/web/fundamentals/primers/shadowdom/?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Shadow DOM v1: self-contained web components</a></li>
</ul>

<p>Shadow DOMはChrome 35から実装されていますが、これは「v0」と呼ばれる、Blinkのみでしか使えないものです。標準化が進むにつれ、<a href="http://hayato.io/2016/shadowdomv1/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">APIに結構大きな変更が生まれた</a>ため、新しいAPIは「v1」として区別されています。v1 APIは他ベンダーの合意もとりつけ、<a href="https://webkit.org/blog/4096/introducing-shadow-dom-api/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Safari 10でも実装</a>されます。</p>

<p>Android版では、Payment Request APIが有効になりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/07/payment-request?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request API で簡単・高速な決済を実現する</a></li>
<li><a href="https://developers.google.com/web/fundamentals/primers/payment-request/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Payment Request API integration guide</a></li>
</ul>

<p>モバイルで決済をする際にとても煩わしいのが、決済フォームへのクレジットカード番号や住所の入力でしょう。Payment Request APIは、端末やブラウザに保存されている情報を利用し、それらをブラウザ側で用意されたUIで提供することで、決済周りの体験をスムーズにする目的で策定されているAPIです。</p>

<p>こちらもAndroid版ですが、<code>muted</code> 属性が指定された <code>video</code> 要素に限り、<code>autoplay</code> 属性や <code>play()</code> メソッドによる自動再生が可能になりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/07/autoplay?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Muted autoplay on mobile: say goodbye to  hacks and animated GIFs!</a></li>
</ul>

<p>これまではビデオの自動再生ができなかったため、アニメーションGIFやCanvasで擬似的に行うといったハックが使われていました。しかしアニメーションGIFには容量の増大や色数の制限、描画パフォーマンスなどに問題がありますし、CanvasもビデオファイルをJavaScriptでデコードするといった無茶をしており、うれしくありません。こうした本末転倒な状況を解消するため、無音状態に限り自動再生できるように要件が緩和されました。</p>

<p>同様の変更は、iOS 10のSafariでも行われます。</p>

<ul>
<li><a href="https://webkit.org/blog/6784/new-video-policies-for-ios/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New &lt;video&gt; Policies for iOS</a></li>
</ul>

<p>多くのサイトが、負荷の高いアニメーションGIFからビデオに移行してくれればなあと強く思います。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Chrome 52新機能、最新macOS「Sierra」パブリックベータ公開─2016年7月のブラウザ関連ニュース</title>
		<link>/myakura/20202/</link>
		<pubDate>Mon, 15 Aug 2016 00:26:44 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Sierra]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=20202</guid>
		<description><![CDATA[連載： WEB標準化動向 (15)2016年7月のブラウザ関連ニュースは、7月20日にリリースされたChrome 52、macOSの最新バージョン「Sierra」のパブリックベータ公開についてお伝えします！ Chrome...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (15)</div><p>2016年7月のブラウザ関連ニュースは、7月20日にリリースされたChrome 52、macOSの最新バージョン「Sierra」のパブリックベータ公開についてお伝えします！</p>

<h2>Chrome 52リリース</h2>

<p>7月20日にChrome 52がリリースされました。</p>

<p>Mac版は見た目がすっきりしました。</p>

<div id="attachment_20277" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/08/chrome_52_interface_change-640x360.png" alt="スクリーンショット：Chrome 51とChrome 52のウインドウを並べたもの" width="640" height="360" class="size-large wp-image-20277" srcset="/wp-content/uploads/2016/08/chrome_52_interface_change.png 640w, /wp-content/uploads/2016/08/chrome_52_interface_change-300x169.png 300w, /wp-content/uploads/2016/08/chrome_52_interface_change-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">グラデーションや丸みがなくなりすっきりした。タブも少し大きくなった</p></div>

<p>新しい見た目は、モバイル版ChromeやChrome OSと同じものになっています。細かいところについては、GoogleでChromeのデザインをしているSebastien Gabrielが自身のサイトやMediumでまとめています。</p>

<ul>
<li><a href="http://sebastien-gabriel.com/work/chrome-ios" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome for iOS</a></li>
<li><a href="http://sebastien-gabriel.com/work/chrome-android" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Android</a></li>
<li><a href="http://sebastien-gabriel.com/work/chrome-cros" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome for Chrome OS</a></li>
<li><a href="https://medium.com/google-design/redesigning-chrome-android-11eab15dc7ee" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redesigning Chrome Android. Part 1</a></li>
<li><a href="https://medium.com/google-design/redesigning-chrome-android-part-2-of-2-8884f0430940" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Redesigning Chrome Android. Part 2</a></li>
</ul>

<p>新しい機能の紹介をしましょう。今回はパフォーマンス向上に貢献しそうなものが多く入っています。</p>

<p>Service Worker/Fetch API関連で、レスポンスを <code>ReadableStream</code> で作成し返せるようになりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/06/sw-readablestreams" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Stream Your Way to Immediate Responses</a></li>
<li><a href="https://jakearchibald.com/2016/streams-ftw/#creating-your-own-readable-stream" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Creating your own readable stream: 2016 &#8211; the year of web streams</a></li>
</ul>

<p>うまく使えば段階的にコンテンツを表示できるので、体感速度が上がります。</p>

<p>CSSではCSS Containmentというものが実装されました。指定した要素について、レイアウトや描画のスコープを設けられる仕組みです。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/06/css-containment?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome 52 に CSS Containment が導入</a></li>
</ul>

<p>基本的にレイアウトや描画はドキュメント全体がスコープになるため、一部のみ変更する際にはドキュメント全体が対象となる無駄な処理が走ります。それを抑制できるので、とくに複雑なページで使うと恩恵が大きいでしょう。</p>

<p>また、新機能ではありませんが、外部スタイルシートが起こすレンダリングの挙動が変更されました。</p>

<ul>
<li><a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ZAPP8aTnyn0" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Intent to Implement: Block parser on external CSS</a></li>
</ul>

<p>これまでは外部スタイルシートをパーザが発見した場合、それが読み込まれるまで描画をブロックしていたのですが、すでにパーザが処理したDOMの描画も止めていたため、段階的なレンダリングができませんでした。新しい挙動は外部スタイルシートが見つかった箇所以降のみレンダリングのブロックが発生します。段階的なレンダリングにやさしくなります。</p>

<p>この挙動とHTTP/2を組みあわせ、必要なときに必要なCSSを読みこむやり方が検討されています。</p>

<ul>
<li><a href="https://jakearchibald.com/2016/link-in-body/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The future of loading CSS</a></li>
</ul>

<p>パフォーマンス計測のためのPerformance Observerも実装されました。Navigation Timingをはじめとした各種パフォーマンス情報をObserverで取得する新しいAPIです。ポーリングなどをしなくてもよくなりますし、必要なパフォーマンス情報を絞れるので、扱いやすくなるかと思います。</p>

<p>パフォーマンス関連以外の機能もちょこちょこあります。</p>

<ul>
<li>Canvas APIに <code>ctx.filter</code> が追加され、フィルタを指定できるようになりました</li>
<li><s>CSS Color Module Level 4で定義されている <code>#rrggbbaa</code> 記法が使えるようになりました</s><br>（<strong>8月25日追記</strong>：<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=618518" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">リリース直前に無効にされていました…</a>）</li>
<li><a href="https://v8project.blogspot.jp/2016/06/release-52.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">V8も更新され</a>、ES7のexponentiation operator（<code>**</code>）が実装されました</li>
</ul>

<h2>macOS Sierraパブリックベータ公開</h2>

<p>OS Xから名前が変わったmacOSの最新バージョン、Sierraのパブリックベータが公開されました。</p>

<p>Safari 10が入っていますが、<a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">開発者向けのドキュメント</a>で取り上げられていない機能も一部入っています。</p>

<p>ひとつはCSSアニメーションのの <code>spring()</code> です。「ばね」と名のつくように、ぼよんぼよんと動くアニメーションを簡単に使えるものです。<a href="https://github.com/w3c/web-animations/issues/155#issuecomment-228198739" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Appleが内部で必要として試験的に実装されたもの</a>で、後にAppleより標準化も提案されています。</p>

<ul>
<li><a href="https://github.com/w3c/csswg-drafts/issues/280" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">spring() timing function</a></li>
<li><a href="https://webkit.org/demos/spring/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Spring timing function demo</a></li>
</ul>

<p>頑張れば既存の仕組みでも実現できるかもしれませんが、専用の関数が用意されているとだいぶ楽そうです。
また、タイミング関数を自作できる仕組みもほしいという話もコミュニティから出ています。</p>

<ul>
<li><a href="https://github.com/w3c/csswg-drafts/issues/229" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Complex timing functions</a></li>
</ul>

<p>動きもコンポーネント的に定義できれば、ライブラリとしての提供もしやすそうです。</p>

<p>もうひとつは、初期のベータだけですが、WebPがOSレベルでサポートされていました。</p>

<ul>
<li><a href="https://groups.google.com/a/webmproject.org/forum/#!msg/webp-discuss/J8HLhTaklYE/RAtX14MEAQAJ" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebP is now supported on Safari 10 both on macOS sierra and iOS 10</a></li>
</ul>

<p>しかし、後のベータでは<a href="https://twitter.com/grorgwork/status/760205585044217856" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">削除され</a>、<a href="https://twitter.com/othermaciej/status/760579458956865536" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ベータに含める意図がなかった</a>ことも明らかになっています。Appleが実装するまでWebPに興味があったというのが、うれしいニュースでしょうか。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Webの最先端では何が起こっているか、今Googleが取り組んでいることは？──Google I/O 2016セッションレポート【後編】</title>
		<link>/ryoyakawai/19461/</link>
		<pubDate>Wed, 15 Jun 2016 00:00:15 +0000</pubDate>
		<dc:creator><![CDATA[河合良哉]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[I/O 2016]]></category>
		<category><![CDATA[MIDI]]></category>

		<guid isPermaLink="false">/?p=19461</guid>
		<description><![CDATA[Google I/O 2016のセッション「What&#8217;s new for the web?」についてのレポート後編です。（前編はこちら） 前編では、既に導入済みの機能、API、またこれから導入される機能が怒涛...]]></description>
				<content:encoded><![CDATA[<p>Google I/O 2016のセッション「What&#8217;s new for the web?」についてのレポート後編です。（前編は<a href="https://html5experts.jp/ryoyakawai/19335" target="_blank" data-wpel-link="internal">こちら</a>）
前編では、既に導入済みの機能、API、またこれから導入される機能が怒涛のごとく紹介してきました。後編では、Web Platformをより先に進めるためにGoogleが取り組んでいること、そしてWeb BluetoothやPhysical Webについて解説していきます。</p>

<h2>Google loves the web</h2>

<p>ChromeチームWeb Platformをより先に進めるために、ここ1～2年取り組んでいるアプローチの紹介です。</p>

<p><img src="/wp-content/uploads/2016/06/GoogleLovetheWeb1.png" alt="GoogleLovetheWeb" width="640" height="356" class="aligncenter size-full wp-image-19479" srcset="/wp-content/uploads/2016/06/GoogleLovetheWeb1.png 640w, /wp-content/uploads/2016/06/GoogleLovetheWeb1-300x167.png 300w, /wp-content/uploads/2016/06/GoogleLovetheWeb1-207x115.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>まず、前提としてGoogleはWebが大好きです。Googleの同僚は皆、Webが大好きです。そしてChrome Teamには「Webをより先に進める」という重要なMissonがあります。ここで私がWebと言っているのはChrome Webということではなく、全てのWebのことを指していて、それら全てのWebが素晴らしくなってほしいと思っています。</p>

<p>よって、Interoperability（相互運用性）を保ちモダンブラウザの全てにShipされるまでが我々の使命です。なぜならInteroperabilityが保たれずShipしてしまったら、誰でも・いつでも・どこでも利用できるというWebの最も大きく重要な利点の1つが失われてしまうからです。Vender Prefixを廃止したのもそういった理由です。</p>

<p>Chromeにおいては、Web Platformをより先に進めるために4つのアプローチをを持ち取り組んでいます。</p>

<h4>Chromeチームが取り組んできたこと</h4>

<ul>
<li><b>複数のチャネルを持つ</b>（Stable, Dev, Canary、Beta）</li>
<li><b>実験的な機能にはExperimental flagを設けONにしないと動かなくしている</b>(chrome://flags のことでWeb Bluetoothもこの1つ)</li>
<li><b>Original Trials</b>：実装したAPIをそのままExperimental flagとして提供してしまうと、いつの間にかデファクトになってしまう可能性があります。APIの仕様・実装を吟味してからShipすることがよりよいWebを作るのには必要不可欠です。よって、Feedbackをすることに同意したDeveloperのみ利用を可能にすることで、利用するユーザー数を絞り、さらに期間を区切ることでデファクトすることを防ぎ、実験のIterationのスピードを上げることを目的としています。さらに多くのDeveloperが使い始めた場合は自動的に利用を停止する機能も入っています。</li>
<li><b>Incubation of substantial new feature</b>(<a href="https://html5experts.jp//wicg.io" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">wicg.io</a>)：Web Incubator Community GroupをW3Cでにて行っています。標準化のProposalの議論をライトウェイトに行うグループです。チャーター（W3Cで議論を進める場合には必ず作成します）を作ったりすることに全ての時間は費やさないものの、正しく管理されるし、Contributionも受け付けることが可能です。もし新しい機能を提案したい場合は是非このグループに提案してください。</li>
</ul>

<p><img src="/wp-content/uploads/2016/06/wicg.png" alt="wicg" width="640" height="355" class="aligncenter size-full wp-image-19467" srcset="/wp-content/uploads/2016/06/wicg.png 640w, /wp-content/uploads/2016/06/wicg-300x166.png 300w, /wp-content/uploads/2016/06/wicg-207x115.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>しかし、機能を追加するだけではWeb Platformを健康に保つことはできません。よって、機能の削除も行います。削除の理由には、他のAPIとの入替えや、実験的に作ったが上手くいかなかった、というものがあったりします。3つ前までで削除された機能のリストがこちら(<a href="https://html5experts.jp//goo.gl/5gq1Im" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">goo.gl/5gq1Im</a>)です。今後、requestAutoCompleteだったり、HTML5 App Cacheのような影響の大きな機能も削除しようとしています。まだ使われている機能、APIをいきなり削除しないというようなポリシーもありますので安心してください。</p>

<h4>これまでの成功の紹介</h4>

<p>それでは、ここ数年での成功を紹介します。私がここに立っている、ということは何のことだか分かる方も多いかも知れませんが、そうですWeb MIDIです。</p>

<p>MIDIは知ってる方もそうでない方もいると思います。仕様ができてから30年以上にもなる楽器のキーボード、シンセサイザー等、電子楽器同士、またはコンピュータとを接続する標準化されたプロトコルです。数年前Web Audioで遊んでいたときに「これを楽器のキーボードから操作したい」と思い立ったW3Cにて標準化を始め、Chromeでは去年Shipされました。</p>

<p>ChromeでのShip以降、多くの楽器メーカがユーザー体験を提供するプラットフォームとしてWebを使い始めました。Yamahaはrefaceという新しいシンセサイザーのラインナップに対してSoundmondoという音色のエディタ、ライブラリアンを提供するWeb MIDIを使ったサービスを展開しています。NovationのCircuit Groove BoxはWebに接続して新しいサンプルをダウンロードします。これらの作業においてソフトウェアを新たにインストール必要はないのです。</p>

<p>そして、間違いなくスゴイことはフランスのEDMアーティストであるMadeonがWeb Audioで作られたRemixBoardをWebサイトで公開したことです。ファンに向けられて作られたサイトで、彼のアルバムの中の音をRemixして遊ぶことができるのです。もちろんMIDIデバイスも接続してプレイすることができるようになっているのです。<br>
（デモ（パフォーマンス？）が始まります。実際の動画を御覧ください）</p>

<p><figure class="aligncenter">
<a href="https://youtu.be/bK6Ah68jEX8?t=28m25s" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">
<img src="/wp-content/uploads/2016/06/chris_madeon.png" alt="chris_madeon" width="640" height="359" class="aligncenter size-full wp-image-19477" srcset="/wp-content/uploads/2016/06/chris_madeon.png 640w, /wp-content/uploads/2016/06/chris_madeon-300x168.png 300w, /wp-content/uploads/2016/06/chris_madeon-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a>
<figcaption>何が起きたかは<a href="https://youtu.be/bK6Ah68jEX8?t=28m25s" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ここ</a>または画像をクリックして動画を御覧ください！</figcaption>
</figure></p>

<p>デモアプリのURLはこちら<a href="https://html5experts.jp//www.madeon.fr/adventuremachine" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">www.madeon.fr/adventuremachine</a>です。</p>

<p>「これスゴイでしょ？！」と言いたいのですが、本質はそこではなくて「ハードウェアがブラウザにアクセスできる」ということが大きな可能性を生んだ、ということを伝えたいのです。ちょうど加速度センサから素晴らしいユーザー体験（UX）が生まれ、モバイル・デバイスが大きな可能性を持ったのと同じようにです。他にも接続できることで大きな可能性が生まれるデバイスはたくさんあると思います。我々は、そこにある可能性を積極的に解き放っていきたいと考えています。</p>

<p>（ここでChris氏からFrançois氏に交代）</p>

<h2>これから何が起こるのか</h2>

<h4>Web Bluetooth</h4>

<p>Bluetoothの名称の由来の説明から始まります。（詳しくはWikipediaの<a href="https://goo.gl/s7nIAG" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Bluetooth </a>「名称の由来」をどうぞ）
<img src="/wp-content/uploads/2016/06/bluetooth.png" alt="bluetooth" width="640" height="358" class="aligncenter size-full wp-image-19486" srcset="/wp-content/uploads/2016/06/bluetooth.png 640w, /wp-content/uploads/2016/06/bluetooth-300x168.png 300w, /wp-content/uploads/2016/06/bluetooth-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>Bluetoothはいろいろなバージョンで20年成長してきた技術で、最新はBluetooth Low Energy（BLE）が導入されたVersion 4でリリースされてから6年経過しています。Wi-Fi、Ethernetのスピードは継続的に上がっていますが、Bluetoothはちょっと様子が違っています。</p>

<p><img src="/wp-content/uploads/2016/06/blespeed.png" alt="blespeed" width="640" height="358" class="aligncenter size-full wp-image-19488" srcset="/wp-content/uploads/2016/06/blespeed.png 640w, /wp-content/uploads/2016/06/blespeed-300x168.png 300w, /wp-content/uploads/2016/06/blespeed-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>なぜなら、今まで接続されていなかった多くのデバイスに搭載できるようにバッテリの消費量を最小限にできるようにデザインされているからです。例えば小型のデバイスが使うバッテリは、通常CR2032です。（2032の20は直径、32は厚さを表すそうです！）なので、転送速度はとっても遅いのです。ですが、BLEはそもそも転送速度が遅くても大丈夫なデバイスをターゲットにしているので問題はありません。</p>

<p>それでは、デモをしてみます。デモはPlaybulb Candleという電球のOn/Off、色をBluetooth通信にて変更できるデバイスをWebアプリから操作します。（映像には全体が映っていませんでしたが、会場ではこんな感じでデモが行われていました）</p>

<p><img src="/wp-content/uploads/2016/06/playbulbcandle.jpg" alt="playbulbcandle" width="640" height="426" class="aligncenter size-full wp-image-19491" srcset="/wp-content/uploads/2016/06/playbulbcandle.jpg 640w, /wp-content/uploads/2016/06/playbulbcandle-300x200.jpg 300w, /wp-content/uploads/2016/06/playbulbcandle-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>Bluetooth SIG(Bluetoothの規格の策定、技術利用に対する認証を行う団体)は、これから先2年で96%の電話、タブレットにBLEが搭載されると予想している。そこからも、いろいろな場所でBLEが存在するであろうことがお分かりになると思います。</p>

<p>Web BluetoothのAPIを説明する前に、一度BLEの動作を復習してみます。Bletoothには、以下の2つの機能があります。</p>

<ul>
<li><b>Central</b>：近隣のデバイスを探索する（電話、ラップトップPCの等）</li>
<li><b>Peripheral</b>：周囲に向けて継続的に自らの情報を格納したアドバタイジング・パケットをBroadcastする。（心拍センサ、ビーコン、冷蔵庫等）</li>
</ul>

<p>PeripheralがCentralに接続（ペアリング）されると、Peripheralはアドバタイジング・パケットのBroadcastを停止し、CentralがPeriferalで動作するGATTサーバと通信を開始する。通信に関しては、デフォルトで用意されているバッテリ、心拍のようなサービスも存在していますが、もちろん独自にサービスを作ることも可能になっています。それぞれのサービスにはそれぞれのCharastristicに属性を持っていて、読込み（バッテリーレベルの取得等）、書込み（設定の変更等）、また更新時に通知（心拍数のリアルタイム監視）してもらうことも可能です。Web Bluetooth APIを使って書いたサンプルを説明していきます。</p>

<h4>値の読込み</h4>

<p><img src="/wp-content/uploads/2016/06/bluetooth_getValue.png" alt="bluetooth_getValue" width="640" height="358" class="aligncenter size-full wp-image-19498" srcset="/wp-content/uploads/2016/06/bluetooth_getValue.png 640w, /wp-content/uploads/2016/06/bluetooth_getValue-300x168.png 300w, /wp-content/uploads/2016/06/bluetooth_getValue-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>コードはラップトップがCentral、何かしらのデバイスがPeripheralとなっていることを想定しています。まず、Centralのラップトップがnavigator.bluetooth.requestDevice(option)をCallして近隣のデバイスを探索します。optionにデバイスが山ほど列挙されないためにどの種類でフィルタするかを記述します。コードではバッテリのサービスは標準化されているので「batttery_service」と文字列で指定していますが、アドバタイジングパケットにはカスタマイズした値も書込むことが可能です。</p>

<p>navigator.bluetooth.requestDevice(option)をCallすることで探索が開始され、それと同時にアドレスバーの直下に該当するデバイスを列挙するポップアップが出てきます。ユーザがリストからデバイスを選択すると、JavaScript側ではそのデバイスのデバイス名、利用可能なサービスが格納されているオブジェクトにアクセスが可能になります。</p>

<p>ここでセキュリティに関する注意点。<br>
navigator.bluetooth.requestDevice(option)はユーザのインタラクションにて初めて動作します。デモではボタンクリックで開始していました。Localhost以外のホストでWeb Bluetoothを使う場合は、HTTPSでコンテンツがServeされたことを要求している。</p>

<p>device.get.connect()をCallしてGATTサーバと接続をします。その後に、server.getPrimaryService(&#8216;battery_service&#8217;)でバッテリサービスを取得、service.getCharacteristic(&#8216;battery_level&#8217;)で読込みたいCharacteristicを指定して取得、最後にcharacteristic.getValue()をCallすることで、バッテリのレベルの読込み（取得）をすることができます。</p>

<h4>値の書込み</h4>

<p><img src="/wp-content/uploads/2016/06/bluetoothapi_lookslike.png" alt="bluetoothapi_lookslike" width="640" height="360" class="aligncenter size-full wp-image-19496" srcset="/wp-content/uploads/2016/06/bluetoothapi_lookslike.png 640w, /wp-content/uploads/2016/06/bluetoothapi_lookslike-300x169.png 300w, /wp-content/uploads/2016/06/bluetoothapi_lookslike-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>先ほどとは違い、心拍センサをPeripheralとしています。その他、ハイライトされた部分が違います。charctristic.writeValue()にUint8Arrayにて、1バイトを引数に渡すことで書込みを行っています。</p>

<h4>更新の受取り</h4>

<p><img src="/wp-content/uploads/2016/06/bluetooth_notify.png" alt="bluetooth_notify" width="640" height="359" class="aligncenter size-full wp-image-19499" srcset="/wp-content/uploads/2016/06/bluetooth_notify.png 640w, /wp-content/uploads/2016/06/bluetooth_notify-300x168.png 300w, /wp-content/uploads/2016/06/bluetooth_notify-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>この例でも、心拍センサをPeripheralとしています。この例でも、ハイライトされた部分が違います。characteristicにcharacteristicvaluechangedのイベント名でEventハンドラを設定し、beepという関数をCallbackとして指定しています。characteristic.startNotifications()で、更新の受け取りを開始します。これで、更新がある度にbeepが実行されます。</p>

<p>続いて、心拍センサを動作させるデモです。私（François氏）は心拍センサをつけています。リアルタイムに値を受け取ることができますので、ちょっと見てみましょう。通常私の心拍数は60-80ですが、今はどうでしょう？</p>

<p><img src="/wp-content/uploads/2016/06/francis_heartrate.png" alt="francis_heartrate" width="640" height="361" class="aligncenter size-full wp-image-19504" srcset="/wp-content/uploads/2016/06/francis_heartrate.png 640w, /wp-content/uploads/2016/06/francis_heartrate-300x169.png 300w, /wp-content/uploads/2016/06/francis_heartrate-207x117.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>（普段の倍近くの心拍数が表示されChris氏も会場も爆笑）<br>
次に実際にリアルタイムに心拍数を受け取っていることを証明するために腕立て伏せをしてみます。（前編の最後に掲載さいた画像はここでの1シーンです）<br>（が、ペアリングが切断されたのか動作せず……そして、今度はChris氏も会場も大爆笑！失敗するということは、デモがリアルタイムに行われている証拠です！）</p>

<p>私以外にも、Web Bluetoothで遊んでいる同僚たちもいます。</p>

<p><figure class="aligncenter">
<img src="/wp-content/uploads/2016/06/bletoy00.png" alt="bletoy00" width="640" height="361" class="aligncenter size-full wp-image-19505" srcset="/wp-content/uploads/2016/06/bletoy00.png 640w, /wp-content/uploads/2016/06/bletoy00-300x169.png 300w, /wp-content/uploads/2016/06/bletoy00-207x117.png 207w" sizes="(max-width: 640px) 100vw, 640px" />
<figcaption>Web Bluetoothでラジコンカーをコントロール</figcaption>
</figure></p>

<p><figure class="aligncenter">
<img src="/wp-content/uploads/2016/06/bletoy01.png" alt="bletoy01" width="640" height="359" class="aligncenter size-full wp-image-19506" srcset="/wp-content/uploads/2016/06/bletoy01.png 640w, /wp-content/uploads/2016/06/bletoy01-300x168.png 300w, /wp-content/uploads/2016/06/bletoy01-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" />
<figcaption>Web Bluetoothでプリンタをコントロール</figcaption>
</figure></p>

<p><figure class="aligncenter">
<img src="/wp-content/uploads/2016/06/bletoy02.png" alt="bletoy02" width="640" height="359" class="aligncenter size-full wp-image-19507" srcset="/wp-content/uploads/2016/06/bletoy02.png 640w, /wp-content/uploads/2016/06/bletoy02-300x168.png 300w, /wp-content/uploads/2016/06/bletoy02-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" />
<figcaption>Web BluetoothでBB-8をコントロール</figcaption>
</figure></p>

<p><figure class="aligncenter">
<img src="/wp-content/uploads/2016/06/bletoy03.png" alt="bletoy03" width="640" height="359" class="aligncenter size-full wp-image-19508" srcset="/wp-content/uploads/2016/06/bletoy03.png 640w, /wp-content/uploads/2016/06/bletoy03-300x168.png 300w, /wp-content/uploads/2016/06/bletoy03-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" />
<figcaption>Web BluetoothでLEDをコントロール</figcaption>
</figure></p>

<p><figure class="aligncenter">
<img src="/wp-content/uploads/2016/06/Screen-Shot-2016-06-05-at-1.20.56-AM.png" alt="Screen Shot 2016-06-05 at 1.20.56 AM" width="640" height="359" class="aligncenter size-full wp-image-19509" srcset="/wp-content/uploads/2016/06/Screen-Shot-2016-06-05-at-1.20.56-AM.png 640w, /wp-content/uploads/2016/06/Screen-Shot-2016-06-05-at-1.20.56-AM-300x168.png 300w, /wp-content/uploads/2016/06/Screen-Shot-2016-06-05-at-1.20.56-AM-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" />
<figcaption>Web Bluetoothで空飛ぶ猫をコントロール</figcaption>
</figure></p>

<p>Bluetoothのパケット通信の中身を見るときはAndroidを使うのが最も簡単な方法です。AndroidのDeveloper Optionにある「Bluetooth HCI snoop log」を有効にしてください。（詳しくは<a href="http://wifimanager.hateblo.jp/entry/2016/06/02/204600" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">この辺り</a>を参照してみてください）</p>

<p><img src="/wp-content/uploads/2016/06/support_browser.png" alt="support_browser" width="640" height="358" class="aligncenter size-full wp-image-19511" srcset="/wp-content/uploads/2016/06/support_browser.png 640w, /wp-content/uploads/2016/06/support_browser-300x168.png 300w, /wp-content/uploads/2016/06/support_browser-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>現在Web BluetoothをサポートしているブラウザはOperaとChromeOS、マシュマロ上で動作しているChrome for Android、Chrome for LinuxでChromeでは chrome://flags/#enable-web-bluetooth （アドレスバーにコピー＆ペーストしてください）を有効にすることで利用することが可能です。Mac、WindowsのChromeへは現在実装中です。</p>

<p>開発の助けになるであろう以下の2つを紹介します。</p>

<ul>
<li>Get Start with Web Bluetooth (<a href="https://html5experts.jp//goo.gl/MLKzj2" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">goo.gl/MLKzj2</a>)：コードジェネレータ</li>
<li>Web Bluetooth Developer Studio Plugin (<a href="https://html5experts.jp//goo.gl/c2ype5" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">goo.gl/c2ype5</a>)：Bluetooth SIGが提供している<a href="https://www.bluetooth.com/~/media/developer-studio/index" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Bluetooth Developer Studio</a>向けのPlug-in</li>
</ul>

<p>WebアプリからでもNativeアプリと同じように、Bluetoothでデバイスを操作できるようになりました。また、Webアプリですので、URLをシェアすることで、誰でもスグにアプリを利用できるようになります。当たり前のことかもしれませんが、これがWeb Platformの大きな強みです。</p>

<h4>Physical Webとの連携</h4>

<p>URLを載せたBluetoothのパケットをビーコンからブロードキャストするPhysical Webですが、これがもしBluetoothのアプリからブロードキャストできたらどうでしょう？</p>

<p>URLをPhysical Web経由で受け取り、そのURLにアクセスするとBluetoothデバイスをコントロールするアプリが表示され、Bluetoothデバイスとのペアリングが完了したら、その直後からBluetoothの利用が可能になりますよね。今までのアプリを検索してインストールする等の作業が一切必要がなくなり、通知エリア(Notification Area)に通知されたURLにアクセスするだけでペアリングも含め、Bluetoothデバイスを利用する準備が整うことになります。</p>

<p>今後、Web BluetoothはPhysical Webの機能を組み込み、前述の動作を一気通貫でJavaScriptで実装できるような機能を追加する予定です。</p>

<p>Codelabも<a href="https://codelabs.developers.google.com/codelabs/candle-bluetooth/index.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Control a PLAYBULB candle with Web Bluetooth</a>と<a href="https://codelabs.developers.google.com/codelabs/polymer-bluetooth/index.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Interactive with Bluetooth devices on the web with Polymer</a>もありますので、是非挑戦してみてください。</p>

<p>（再びChris氏）</p>

<h4>Web USB</h4>

<p>Web USBは現存する全てのUSBデバイスに接続しようと考えているわけではなくて、Firmwareへのアクセスを許可されているような新しい種類のデバイスに適用されます。</p>

<h2>まとめ</h2>

<p>ここではカバーしきれなかった、まだまだ多くの以下の様な機能が進行中です。</p>

<p><img src="/wp-content/uploads/2016/06/note_covered.png" alt="note_covered" width="640" height="358" class="aligncenter size-full wp-image-19515" srcset="/wp-content/uploads/2016/06/note_covered.png 640w, /wp-content/uploads/2016/06/note_covered-300x168.png 300w, /wp-content/uploads/2016/06/note_covered-207x116.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>さらに、まだデザインも始めていないPersistent Storageとか、Web Intents v2もあります。</p>

<p>そろそろ時間です。我々がWeb Platformの未来にワクワクしているのと同じくらいに、皆さんもワクワクしていることを期待しています。</p>

<p><a href="https://html5experts.jp//developers.google.com/web/updates/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">developers.google.com/web/updates/</a> にさらなる情報がありますので、お時間がありましたらご覧ください。</p>

<p>（というところで、セッションは終了しました）</p>

<p><figure class="aligncenter">
<img src="/wp-content/uploads/2016/06/IMG_34891.jpg" alt="IMG_3489" width="640" height="443" class="aligncenter size-full wp-image-19360" srcset="/wp-content/uploads/2016/06/IMG_34891.jpg 640w, /wp-content/uploads/2016/06/IMG_34891-300x208.jpg 300w, /wp-content/uploads/2016/06/IMG_34891-207x143.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" />
<figcaption>セッション終了後の素敵な笑みを浮かべるChris氏とガッツポーズのFrançois氏</figcaption>
</figure></p>

<p>ありがとうございました＆お疲れ様でしたっ！！！</p>
]]></content:encoded>
			</item>
		<item>
		<title>Chrome 51リリース、EdgeHTML 14の機能紹介─2016年5月のブラウザ関連ニュース振り返り</title>
		<link>/myakura/19326/</link>
		<pubDate>Tue, 07 Jun 2016 00:00:48 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=19326</guid>
		<description><![CDATA[連載： WEB標準化動向 (13)Chrome 51リリース 5月25日にChrome 51がリリースされました。新しく追加されたAPIはGoogle Developers Japanブログで紹介されています。 Chro...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (13)</div><h2>Chrome 51リリース</h2>

<p>5月25日にChrome 51がリリースされました。新しく追加されたAPIはGoogle Developers Japanブログで紹介されています。</p>

<ul>
<li><a href="http://googledevjp.blogspot.jp/2016/06/chrome-51credential-management-api.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome 51：Credential Management API と画面外レンダリングのオーバーヘッド削減</a></li>
<li><a href="http://googledevjp.blogspot.jp/2016/06/api.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ウェブのスクロール パフォーマンスを改善する新しい API のご紹介</a></li>
</ul>

<p>Intersection Observerは、ある要素がブラウザの表示域にあるかどうかを検出するAPIです。<code>scroll</code> イベントでの監視や <code>getBoundingClientRect()</code> の呼び出しなど、パフォーマンスを低下させるものが改善できます。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/04/intersectionobserver" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">IntersectionObserver’s Coming into View</a></li>
</ul>

<p>応用範囲としては、いわゆるパララックス系のもの、あとは遅延読み込み系のスクリプトでしょうか。後者については泉水さんが自身の画像を遅延読み込みするカスタム要素をIntersection Observerを使うように書き直しています。</p>

<ul>
<li><a href="https://1000ch.net/posts/2016/intersection-observer-lazyload.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">IntersectionObserverを使ってlazyload-imageを書き直した &#8211; 1000ch.net</a></li>
</ul>

<p>Credential Management APIは、ブラウザのパスワードマネージャと連携し煩わしいログインまわりを改善するものです。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/04/credential-management-api?hl=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Credential Management API を使ったサインインフローの効率化</a></li>
<li><a href="http://d.hatena.ne.jp/ASnoKaze/20160505/1462381911" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ブラウザのクレデンシャル管理と連携するCredential Managementを試す &#8211; あすのかぜ</a></li>
</ul>

<p>最近のブラウザはパスワードマネージャがあるので多少便利になってはいますが、Facebook/Twitterでログインさせるものなどその恩恵を受けられないケースもあります。Credential Management APIはそういった認証情報をうまくまとめて扱えるようにするものです。</p>

<p>他に便利そうなものとして、<code>NodeList</code> インターフェースがiterableになり、<code>querySelectorAll</code> などの結果を <code>forEach()</code> や <code>map()</code> で直接扱えるようになりました。jQueryにまた一歩追いつきました。</p>

<p><img src="/wp-content/uploads/2016/06/chrome51_iterablenodelist.png" alt="スクリーンショット：Chrome DevToolsのコンソールから querySelectorAll の結果に直接 forEach メソッドをつけ実行" width="472" height="237" class="aligncenter size-full wp-image-19327" srcset="/wp-content/uploads/2016/06/chrome51_iterablenodelist.png 472w, /wp-content/uploads/2016/06/chrome51_iterablenodelist-300x151.png 300w, /wp-content/uploads/2016/06/chrome51_iterablenodelist-207x104.png 207w" sizes="(max-width: 472px) 100vw, 472px" /></p>

<p>DevToolsで試してみました。とはいえDevToolsでは <code>$$()</code> がArrayを返すようになっているので、コンソールからいろいろ扱うならそちらの方が便利かもしれません。</p>

<h2>Edge 14の機能紹介</h2>

<p>夏に提供されるWindows 10 Anniversary Updateで、安定版を提供予定のEdgeHTML 14。新たに追加される機能がMicrosoft Edge Dev Blogで紹介されています。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/05/03/woff2-fonts-in-microsoft-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Speed up page load with WOFF 2.0 fonts in Microsoft Edge</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/05/16/web-notifications-microsoft-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Notifications in Microsoft Edge</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/05/17/es6-modules-and-beyond/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Previewing ES6 Modules and more from ES2015, ES2016 and beyond</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/05/24/fetch-and-xhr-limitations/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Fetch (or the undeniable limitations of XHR)</a></li>
</ul>

<p>注目はEdgeHTMLというよりChakraなのですが、ECMAScriptのモジュールでしょうか。ECMAScript 2015仕様のモジュールは構文のみが定義されており、読み込みまわりは実装に委ねられていました。このためどのブラウザでもまだフルに実装されていません。Edgeはエントリ公開時点で提供されたプレビュー版で、一部構文の読み込みを実装したようです。</p>

<p>ESモジュールは現時点では静的なので、パーズ時点でモジュールの場所や利用するメンバーが決定されます。これを利用しEdgeでは読み込みの最適化を行っているようです。</p>

<p>また、実装中のFetch APIを紹介するエントリでは、Service Workerの実装開始が発表されました。Push APIやService Worker版のNotifications APIも検討中らしいので、Windows 10でもより便利なWebアプリを利用できる日は近そうです。</p>

<p>WOFF 2.0も日本語フォントをはじめ、文字数の多いフォントを読み込むには嬉しい対応ですね。</p>

<p><img src="/wp-content/uploads/2016/06/yakura-1.jpg" alt="" width="500" height="320" class="alignnone size-full wp-image-19577" srcset="/wp-content/uploads/2016/06/yakura-1.jpg 500w, /wp-content/uploads/2016/06/yakura-1-300x192.jpg 300w, /wp-content/uploads/2016/06/yakura-1-207x132.jpg 207w" sizes="(max-width: 500px) 100vw, 500px" /></p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Edge Web Summit、Chrome 50、Firefox 46、WebKitなど─2016年4月のブラウザ関連ニュース振り返り</title>
		<link>/myakura/18864/</link>
		<pubDate>Tue, 10 May 2016 00:00:57 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=18864</guid>
		<description><![CDATA[連載： WEB標準化動向 (12)2016年4月のブラウザニュースは、Edge Web Summit、Chrome 50リリース、Firefox 46リリース、WebKitの接頭辞ポリシー変更などについて紹介します。 E...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/webstandards-news/" class="series-156" title="WEB標準化動向" data-wpel-link="internal">WEB標準化動向</a> (12)</div><p>2016年4月のブラウザニュースは、Edge Web Summit、Chrome 50リリース、Firefox 46リリース、WebKitの接頭辞ポリシー変更などについて紹介します。</p>

<h2>Edge Web Summit開催</h2>

<p>4月4日に、Edge Web Summitが開催されました。Microsoftは前々日にBuildカンファレンスを行っていましたが、Edgeはこちらに集中した印象です。</p>

<ul>
<li><a href="https://channel9.msdn.com/Events/WebPlatformSummit/edgesummit2016" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edge Web Summit 2016 | Channel 9</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/04/08/edge-summit-2016-on-channel-9/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Edge Web Summit 2016 recordings are now available on Channel 9 | Microsoft Edge Dev Blog</a></li>
</ul>

<p>新たに発表されたのは、レンダリングエンジンEdgeHTMLのイシュートラッカーです。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/04/11/css-usage-platform-data/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">EdgeHTML issue tracker</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/04/06/edgehtml-issue-tracker/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing the Microsoft Edge Platform Issue Tracker | Microsoft Edge Dev Blog</a></li>
</ul>

<p>Internet Explorer時代にもMicrosoft Connectで公開フィードバックはできましたが、こちらはエンジンのEdgeHTMLに特化しており、開発者とのコミュニケーションを強く意識しているように感じられます。</p>

<p>他にも、Webで使われているCSSプロパティなどを集めたデータも公開されました。Chromeチームも<a href="https://www.chromestatus.com/metrics/css/popularity" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Platform Status</a>で公開していますが、それと同等のものですね。</p>

<ul>
<li><a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/usage/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Global CSS Property Usage</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/04/11/css-usage-platform-data/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing Global CSS Property Usage on Microsoft Edge Dev | Microsoft Edge Dev Blog</a></li>
</ul>

<p>「使われている」の定義にもこだわっているようで、ただCSSファイルを解析しているわけではなく、WebページにアクセスしDOMとCSSOMを構築したうえで調べているとのこと。</p>

<p>現在バグのため <code>padding</code> 利用率が0％になっていますが （CSSの <code>calc()</code> 解釈まわりにバグがあるそう）、そのうち直るでしょう。</p>

<p>また、WebRTC関連のロードマップが更新されたことも発表されました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/04/13/roadmap-update-for-real-time-communications-in-microsoft-edge/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Roadmap update for Real Time Communications in Microsoft Edge | Microsoft Edge Dev Blog</a></li>
</ul>

<p>これまでEdgeではORTCをサポートしていましたが、互換性への取り組みからWebRTC 1.0の一部も実装するようです。また、映像コーデックについてはH.264/AVCを実装中、さらに決定ではありませんがVP8も検討しているとのこと。</p>

<h2>Chrome 50リリース</h2>

<p>4月13日に、Chrome 50がリリースされました。ついに50なのですね。</p>

<ul>
<li><a href="https://chrome.googleblog.com/2016/04/chrome-50-releases-and-counting.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Chrome Blog: Chrome: 50 releases and counting!</a></li>
</ul>

<p>新しい機能についてはBetaリリース時のポスト、およびDev Operaの記事が詳しいです。</p>

<ul>
<li><a href="http://googledevjp.blogspot.jp/2016/03/chrome-50.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: Chrome 50 ベータ版: プッシュ通知の改良、宣言型プリロードなど</a></li>
<li><a href="https://dev.opera.com/blog/opera-37/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Dev.Opera — What’s new in Chromium 50 and Opera 37</a></li>
</ul>

<p>新しい機能として、HTMLの <code>link</code> 要素に <code>preload</code> というものが加わりました。使われるであろうリソースをその種類とともに指定することで、先読みを実施できます。</p>

<ul>
<li><a href="https://www.smashingmagazine.com/2016/02/preload-what-is-it-good-for/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Preload: What Is It Good For? – Smashing Magazine</a></li>
<li><a href="https://developers.google.com/web/updates/2016/03/link-rel-preload" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Prioritizing Your Resources with  | Web Updates &#8211; Google Developers</a></li>
<li><a href="https://blog.jxck.io/entries/2016-03-04/preload.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Preload を用いたリソースプリローディングの最適化 | blog.jxck.io</a></li>
</ul>

<p>たとえばWebフォントのURLなどに使いやすそうです。外部CSSでWebフォントが定義されている場合、まずそのCSSファイルを取得し解釈したのち、Webフォントをリクエストするため、パフォーマンスの向上が見込めそうです。</p>

<p>他に目立つのは、Canvasの <code>toBlob()</code> メソッドと、 <code>ImageBitmap</code> インターフェースでしょうか。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/03/canvas-toblob-in-chrome-50" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Canvas toBlob() support added in Chrome 50 | Web Updates &#8211; Google Developers</a></li>
<li><a href="https://developers.google.com/web/updates/2016/03/createimagebitmap-in-chrome-50" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome Supports createImageBitmap() in Chrome 50 | Web Updates &#8211; Google Developers</a></li>
</ul>

<p><code>toBlob()</code> は <code>toDataURL()</code> の <code>Blob</code> 版です。一度文字列を経由せずに、バイナリデータを直接さわれるのが魅力でしょうか。</p>

<p><code>ImageBitmap</code> は、Canvasで画像を扱いやすくするAPIです。これまでは効率的に画像のデコードなどを行えませんでしたが、<code>createImageBitmap()</code> を使えば非同期に画像を容易できます。<code>drawImage()</code> のように描画を必要としないのも魅力的です。Workerにも提供されるので、画像の処理を別スレッドにもっていくのも容易です。</p>

<p>すでに他のブラウザでも一部実装されており、<code>toBlob()</code> はFirefox 19とIE10から、<code>ImageBitmap</code> はFirefox 42でサポートされています。</p>

<p>新しい機能が追加される一方で、削除・廃止予定の発表もあります。Chrome 50では、非HTTPS環境でGeolocation APIが利用不可に、同じく非HTTPS環境でAppCacheが廃止予定となりました。</p>

<ul>
<li><a href="https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Geolocation API removed from unsecured origins in Chrome 50</a></li>
<li><a href="https://developers.google.com/web/updates/2016/03/chrome-50-deprecations" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">API Deprecations and Removals in Chrome 50</a></li>
</ul>

<p>位置情報の取得をGeolocation APIのみに頼っているサイトはHTTPSへの移行が強く推奨されていますが、<a href="https://developers.google.com/maps/documentation/geolocation/intro" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Maps Geolocation API</a>など別のサービスも紹介されています。</p>

<p>機能の削除や廃止については、<a href="https://groups.google.com/a/chromium.org/forum/#!forum/blink-dev" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">blink-devメーリングリスト</a>で都度アナウンスされるほか、Chrome Platform Statusで「<a href="https://www.chromestatus.com/features#deprecated" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">deprecated</a>」「<a href="https://www.chromestatus.com/features#removed" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">removed</a>」と検索すると、すでに変更されたものも含め一覧を見られます。</p>

<p>また、廃止予定の機能を仕様している場合はコンソールにその旨が出ますので、たまにはちゃんと読みましょう。</p>

<h2>Firefox 46リリース</h2>

<p>4月26日にFirefox 46がリリースされました。</p>

<p>ES2015 に導入された <code>RegExp</code> の <code>u</code> フラグがサポートされました。絵文字や「𠮷」といったBMP外の文字はES5時代のJavaScriptでは扱いづらかったのでうれしいですね。</p>

<p>これに伴い、<code>input</code> 要素の <code>pattern</code> 属性の解釈を <code>u</code> フラグと同等にする変更がHTML仕様に入り、そちらもあわせて実装されました。たしかにフォームのバリデーションは <code>u</code> フラグつきの方がやさしそうですね。</p>

<p>はてなの開発者向けブログでも取り上げられています。わかりやすいです。</p>

<ul>
<li><a href="http://developer.hatenastaff.com/entry/2016/04/28/172005" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTMLのpattern属性とJavaScript正規表現のunicodeオプション &#8211; Hatena Developer Blog</a></li>
</ul>

<p>また、JavaScriptでのUnicodeの扱いはOperaのMathias Bynesの記事によくまとまっています。彼の講演も面白いですよ。</p>

<ul>
<li><a href="https://mathiasbynens.be/notes/javascript-unicode" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">JavaScript has a Unicode problem · Mathias Bynens</a></li>
</ul>

<p>CSSでは、圏点を表示させる <code>text-emphasis</code> プロパティ群がサポートされました。小説などでは見る強調表現ですが、Webでも太字以外の強調が今後増えてくるのでしょうか。</p>

<p>他には、過去に紹介した <code>-webkit-</code> 接頭辞のプロパティサポートが有効になりました。日本のモバイル向けページなど、<code>-webkit-</code> 接頭辞に強く依存してるページの表示が向上すると思われます。</p>

<h2>WebKitが接頭辞のポリシーを変更し、他エンジンに追従</h2>

<p>4月26日に、WebKitがベンダー接頭辞に関するポリシーを変更すると発表しました。試験的な機能にベンダー接頭辞をつけることはせず、他エンジンのようにランタイムフラグを設けて試すようになります。</p>

<ul>
<li><a href="https://webkit.org/blog/6131/updating-our-prefixing-policy/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Updating Our Prefixing Policy | WebKit</a></li>
<li><a href="https://webkit.org/feature-policy/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Feature Policy | WebKit</a></li>
</ul>

<p>最近はツールの助けもあり、手で <code>-webkit-</code> などを書くことは少なくなっていると思いますが、すでに公開されたページではWebKitの接頭辞に依存したコードが残っていたりします。これをうけEdgeやFirefoxは互換性確保のためいくつかの機能をサポートしています。</p>

<p>接頭辞の廃止については、WebKitもしていきたいとのことですが、機能によりそうです。廃止が現実的でない機能については、<a href="https://compat.spec.whatwg.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Compat Standard</a>での定義など標準化によるサポートも必要でしょうか。</p>

<p><img src="/wp-content/uploads/2016/05/yakura-1.jpg" alt="" width="300" height="192" class="aligncenter size-full wp-image-18941" srcset="/wp-content/uploads/2016/05/yakura-1.jpg 500w, /wp-content/uploads/2016/05/yakura-1-300x192.jpg 300w, /wp-content/uploads/2016/05/yakura-1-207x132.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
	</channel>
</rss>
