<?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>Safari &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/safari/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>details要素がサポート追加となったFirefox 49リリース、Safari 10リリースやベンチマークのMotionMarkなど──2016年9月のブラウザ関連ニュース</title>
		<link>/myakura/21141/</link>
		<pubDate>Thu, 13 Oct 2016 23:58:18 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[MotionMark]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[details]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=21141</guid>
		<description><![CDATA[連載： WEB標準化動向 (17)2016年9月のブラウザ関連ニュースは、details要素がサポート追加となったFirefox 49や、Safari 10リリースとベンチマークのMotionMarkなどについて紹介しま...]]></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> (17)</div><p>2016年9月のブラウザ関連ニュースは、details要素がサポート追加となったFirefox 49や、Safari 10リリースとベンチマークのMotionMarkなどについて紹介します。</p>

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

<p>9月20日に、Firefox 49がリリースされました。</p>

<ul>
<li><a href="https://www.mozilla.jp/firefox/49.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 49.0 リリースノート</a></li>
</ul>

<p>今回はいつも以上にいろいろ追加されてる気がします。</p>

<p>HTML関連では、<a href="https://developer.mozilla.org/ja/docs/Web/HTML/Element/details" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>&lt;details&gt;</code> 要素</a>がサポートされました。トグルで表示・非表示を切り替えるウィジェットをJavaScriptなしに導入できます。</p>

<p>これ関連で面白いなと思ったのが、<a href="https://gist.github.com/ericclemmons/b146fe5da72ca1f706b2ef72a20ac39d" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 &lt;details&gt; in GitHub</a> です。参考情報としてエラーログなどを張りつける際にログを <code>&lt;details&gt;</code> で囲むことで、ページが長くなるのを防ぎます。</p>

<p>Qiitaでも対応したとのことなので、コード一式をとりあえず書いておくとかそんなときに使えそうですね。</p>

<ul>
<li><a href="http://blog.qiita.com/post/151329031329/detailssummarysupport" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">details,summary要素に対応し、投稿内で指定箇所を折りたためるようになりました &#8211; Qiita Blog</a></li>
</ul>

<p>DOMまわりでは、<code>before()</code>, <code>after()</code>, <code>replaceWith()</code>, <code>append()</code>, <code>prepend()</code> メソッドがサポートされました。jQueryで見たことがあるメソッド名が多いですが、それらとほぼ同様で、要素の追加・置き換えを行います。なお要素を削除する <code>remove()</code> については、Firefox 23からサポートされています。</p>

<p>CSSでは、Level 4の機能がいくつかサポートされました。</p>

<p><code>#rrggbbaa</code> 式の色表記がサポートされました。こちらは先日Blinkでも有効にされかけたのですが、WebViewの誤った実装との互換性をとるため<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=618518" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">無効にされてしまいました</a>。</p>

<p><a href="https://drafts.csswg.org/css-backgrounds-4/#valdef-background-clip-text" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>background-clip: text</code></a> がサポートされました。背景画像でテキストをくり抜く表現が実現できます。もともとWebKitの独自拡張でしたが、広く使われてしまったこともあり、Backgrounds &amp; BordersモジュールLevel 4で定義されました。</p>

<p><a href="https://developer.mozilla.org/ja/docs/Web/CSS/background-position-x" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>background-position-x</code>/<code>-y</code></a>もサポートされました。<code>background-position</code> は水平方向・垂直方向の位置両方を指定しなければいけませんが、これらを使うと個別の方向ごとに位置を指定できます。もともと古いIEやWebKitでサポートされていたもので、こちらもBackgrounds &amp; BordersモジュールLevel 4で定義されました。</p>

<p>背景画像系ではほかにも、Level 3の <a href="https://developer.mozilla.org/ja/docs/Web/CSS/background-repeat" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>background-repeat</code></a>　の <code>round</code> と <code>space</code>がサポートされました。他のブラウザでは結構前からサポートされていたので、追いついたかたちです。</p>

<h3><code>-webkit-</code> サポートも追加</h3>

<p>もともと独自拡張だった機能のサポートがこのバージョンで行われたのには理由があります。Firefox 49では、<code>-webkit-</code> 接頭辞つきのCSSプロパティやAPIの一部をエイリアスとしてサポートしたからです。これによって、主にモバイル向けWebサイト・アプリの互換性が向上します。</p>

<ul>
<li><a href="https://www.mozilla.jp/blog/entry/10559/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Webkit を念頭に作成されたサイトで起きるブラウザ互換性問題に対する Firefox の対応 | Mozilla Japan ブログ</a></li>
</ul>

<p><code>-webkit-</code> の部分的サポートは突然始まったことではなく、日本や中国などの特定サイトに限定し行われていました。それが方針転換し、すべてのサイトに適用されるようになりました。</p>

<ul>
<li><a href="http://myakura.hatenablog.com/entry/2015/04/24/211849" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FirefoxのCSS Unprefixing Service &#8211; fragmentary</a></li>
<li><a href="http://www.otsukare.info/2016/01/04/webkit-resolved-fixed" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Webkit! RESOLVED FIXED &#8211; otsukare</a></li>
</ul>

<p>標準化された機能と接頭辞つき実装には、標準化の過程でプロパティ名や値の取り扱いなどに違いが生まれます。こうした違いをどう埋めるかを明文化すべく、<a href="https://compat.spec.whatwg.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Compatibility Standard</a>という仕様も作られています。ただ、すべての接頭辞つき機能がここで記されるわけではなく、<a href="https://dom.spec.whatwg.org/#dom-element-webkitmatchesselector" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>webkitMatchesSelector()</code></a> などは標準仕様に取り込まれるかたちで定義されています。</p>

<h2>Safari 10リリースとベンチマークのMotionMark</h2>

<p>9月13日のiOS 10と9月20日のmacOS 10.12 Sierraリリースにともない、Safari 10がリリースされました。Sierraだけでなく、El Capitanにも提供されています。</p>

<ul>
<li><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">Safari 10.0</a></li>
</ul>

<p>Safari 10の新機能については、<a href="https://html5experts.jp/myakura/19921/" data-wpel-link="internal">過去の記事</a>で取り上げているので、気になる方はそちらをご覧ください。</p>

<p>さて、9月21日に、WebKitからMotionMarkという、グラフィックス処理のパフォーマンスを計測するベンチマークが発表されました。</p>

<ul>
<li><a href="https://webkit.org/blog/6943/motionmark-a-new-graphics-benchmark/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MotionMark: A New Graphics Benchmark | WebKit</a></li>
<li><a href="http://browserbench.org/MotionMark/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MotionMark 1.0</a></li>
</ul>

<p>MotionMarkは、既存のグラフィクス関連ベンチマークが抱えていたいくつかの問題を解決するために用意したとのこと。計測対象がフレームレートではなく、フレームレートが閾値以下になったときのアニメーションの複雑さであることや、いろんなテストをいちシーンに詰め込まず、問題を切り分けやすくするといった工夫がされているようです。</p>

<div id="attachment_21230" style="width: 650px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47-640x429.png" alt="Safari 10でMotionMarkを実行した結果。スコアは145.15（±5.12％）" width="640" height="429" class="size-large wp-image-21230" srcset="/wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47.png 640w, /wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47-300x201.png 300w, /wp-content/uploads/2016/10/Screen-Shot-2016-09-30-at-20.23.47-207x139.png 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text"><br />この記事を書いているマシン（2011年のMacBook Air、11インチモデル）上のSafari 10で実行してみた</p></div>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Firefox 47・Safari 10、EdgeとProgressive Web Appsの新機能など─2016年6月のブラウザ関連ニュース</title>
		<link>/myakura/19921/</link>
		<pubDate>Tue, 05 Jul 2016 02:25:46 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=19921</guid>
		<description><![CDATA[連載： WEB標準化動向 (14)6月7日にリリースされたFirefox 47や、WWDCで発表されたSafari 10、WindowsにおけるProgressive Web Apps対応など、6月も注目のブラウザニュー...]]></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> (14)</div><p>6月7日にリリースされたFirefox 47や、WWDCで発表されたSafari 10、WindowsにおけるProgressive Web Apps対応など、6月も注目のブラウザニュースをお届けします。</p>

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

<p>6月7日にFirefox 47がリリースされました。</p>

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

<p>今回は開発者ツールを取り上げましょう。まずはResponsive Design ModeでUA文字列をカスタマイズできるようになりました。いまのところプリセットがないので面倒ではありますが、そこそこ便利です。</p>

<p><img src="/wp-content/uploads/2016/07/fx47_devtools_custom_ua.png" alt="スクリーンショット：開発者ツールのResponsive Design Modeのツールバー。Custom User AgentでUA文字列を設定できるようになった。" width="520" height="105" class="aligncenter size-full wp-image-19926" srcset="/wp-content/uploads/2016/07/fx47_devtools_custom_ua.png 520w, /wp-content/uploads/2016/07/fx47_devtools_custom_ua-300x61.png 300w, /wp-content/uploads/2016/07/fx47_devtools_custom_ua-207x42.png 207w" sizes="(max-width: 520px) 100vw, 520px" /></p>

<p>さて、これはいいなと思ったのが、コンソールの複数行入力です。以前からShift+Enterで可能でしたが、Shiftを押し忘れてしまって赤い <code>SyntaxError</code> を見るなんてひとは多かったのではないでしょうか。</p>

<p><img src="/wp-content/uploads/2016/07/chrome_console_error.png" alt="スクリーンショット：Chrome DevToolsのコンソールで、複数行入力をしようとして失敗した例。「{」でEnterを間違えて押してしまいエラーがでた。" width="480" height="138" class="aligncenter size-full wp-image-19928" srcset="/wp-content/uploads/2016/07/chrome_console_error.png 480w, /wp-content/uploads/2016/07/chrome_console_error-300x86.png 300w, /wp-content/uploads/2016/07/chrome_console_error-207x60.png 207w" sizes="(max-width: 480px) 100vw, 480px" /></p>

<p>Firefox 47の開発者ツールは入力中のコードの構文を解釈するようになり、<code>{</code> など「開いている」状態でEnterを押すと自動的に複数行入力になります。<code>foo(...)</code> など「閉じている」場合はふつうに評価されます。</p>

<p><img src="/wp-content/uploads/2016/07/mozilla_console.png" alt="スクリーンショット：Firefoxの開発者ツールのコンソールでは、構文を解釈するので「{」は開いた状態と認識され、ただのEnterでも次の行にカーソルが移動する。" width="480" height="138" class="aligncenter size-large wp-image-19929" srcset="/wp-content/uploads/2016/07/mozilla_console.png 480w, /wp-content/uploads/2016/07/mozilla_console-300x86.png 300w, /wp-content/uploads/2016/07/mozilla_console-207x60.png 207w" sizes="(max-width: 480px) 100vw, 480px" /></p>

<p>構文エラーを意図的に入力したい方には不便かもしれませんが、基本的にはとても便利です。<br>ちなみにSafariではたしかSafari 7くらいからできます。</p>

<p>ほか、Service Worker関連のデバッグに便利な機能が多数追加されています。</p>

<h2>Safari 10発表</h2>

<p>6月13日から17日までAppleのWWDCが開催され、MacのOSがOS XからmacOSになるなどいろんなことが発表されました。<br>SafariもSafari 10になることが発表されました。すでに実装される機能が公開されています。</p>

<ul>
<li><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">Safari 10.0</a></li>
</ul>

<p>ES6のサポートはうれしいですね。Indexed DBやCSS Filtersの接頭辞削除など、互換性も向上しています。<br>フォント関連機能にも大きな進展があります。Font Loading APi、WOFF 2.0、<code>unicode-range</code> のサポートが追加されました。とくに日本語のWebフォントは容量が大きいので、これらの機能はうれしいですね。</p>

<ul>
<li><a href="https://webkit.org/blog/6643/improved-font-loading/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Improved Font Loading</a></li>
</ul>

<p>このエントリでは、先日Webフォントの読み込み中の挙動が変更されたことも書いてあります。これまではWebフォントが読み込まれるまでテキストが表示される問題でしたが、今回の変更でFirefoxやChromeと同じく、Webフォントの読み込みに時間がかかる場合は3秒後にフォールバックのフォントで一旦表示するようになりました。Safari 10の紹介には書いてありませんが、この変更が取り込まれてることを祈りましょう。</p>

<p>Keynoteで発表された<a href="https://developer.apple.com/videos/play/wwdc2016/703/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apple Pay on the Web</a>についてはSafariでのみしか利用できない、Web Paymentsワーキンググループで策定している標準APIではないといった批判の声もあります。これについてはAppleのEdward O&#8217;ConnorがWeb Paymentsワーキンググループに対して説明をしています。</p>

<ul>
<li><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">Apple Pay on the Web</a></li>
</ul>

<p>マーチャントの検証機能や <code>canMakePayments()</code> といった標準にはないメソッドがApple Payにはあるそうです。AppleもWeb Paymentsワーキンググループに参加していますし、標準APIもよいものにしていってほしいですね。</p>

<p>また、Flashコンテンツについても、ユーザーのアクションなしには実行できないようになると発表されました。</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</a></li>
</ul>

<p>MacにはFlash Playerがプリインストールされていないので、インストールしていない人もいるかと思います（Chrome内蔵のFlash Player経由で見るなどは大いにありそうですが）。他のブラウザーもFlashをなるべく実行しないように動いていますし、HTML5なコンテンツへの移行が急務になりそうですね。</p>

<h2>EdgeとProgressive Web Apps</h2>

<p>Microsoft EdgeチームのJacob Rossiが、MediumにWindowsにおけるWebアプリのこれまでと今後のProgressive Web Apps対応について投稿していました。</p>

<ul>
<li><a href="https://medium.com/web-on-the-edge/progressive-web-apps-on-windows-8d8eb68d524e" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">The Progress of Web Apps — On the Edge — Medium</a></li>
</ul>

<p>WindowsにおけるProgressive Web Apps対応は、ChromeやOperaのそれよりも、よりOSの機能との統合を考えているようです。具体的な例としてアプリケーションのリストへの追加や、アプリの設定やアンインストールといったものを紹介しています。また、WindowsストアやBingの検索結果への表示といった、アプリの発見についてもいろいろ考えている模様。PWAをふつうのアプリとして扱うよという強いメッセージを発しています。</p>

<p>この記事と時を同じくして、<a href="https://platformstatustracker.azurewebsites.net/Changes/2016-06-17" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Push API, Web App Manifest, Cache APIの実装開始</a>も発表されました。Windowsというデスクトップ環境が主流のプラットフォームでWebアプリをどう統合していくか、とても楽しみです。</p>

<p><img src="/wp-content/uploads/2016/07/yakura-06.jpg" alt="" width="300" height="192" class="alignnone size-full wp-image-20010" srcset="/wp-content/uploads/2016/07/yakura-06.jpg 500w, /wp-content/uploads/2016/07/yakura-06-300x192.jpg 300w, /wp-content/uploads/2016/07/yakura-06-207x132.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>WebAssembly実装プレビュー、Chrome 49新機能など─2016年3月のブラウザ関連ニュース振り返り</title>
		<link>/myakura/18768/</link>
		<pubDate>Mon, 18 Apr 2016 00:00:26 +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[WebAssembly]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=18768</guid>
		<description><![CDATA[連載： WEB標準化動向 (11)2016年3月のブラウザニュースは、Chrome 49の新機能、Firefox 45とinnerText、WebAssembly実装のプレビュー、Edgeの拡張機能、Safari 9.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> (11)</div><p>2016年3月のブラウザニュースは、Chrome 49の新機能、Firefox 45とinnerText、WebAssembly実装のプレビュー、Edgeの拡張機能、Safari 9.1リリースなどについて紹介します。</p>

<h2>Chrome 49でCSS Variablesサポート</h2>

<p>3月2日に、<a href="http://googlechromereleases.blogspot.jp/2016/03/stable-channel-update.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome 49がリリース</a>されました。新機能はベータ版がリリースされた際にまとめられています。また、同じエンジンを搭載するOpera 36のリリース記事でも紹介されています。</p>

<ul>
<li><a href="http://googledevjp.blogspot.jp/2016/02/chrome-49-css-custom.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: Chrome 49 ベータ版: CSS Custom Properties、Background Sync、ES2015 の新機能など</a></li>
<li><a href="https://dev.opera.com/blog/opera-36/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Dev.Opera — What’s new in Chromium 49 and Opera 36</a></li>
</ul>

<p>注目はCSS Custom Properties（通称Variables）でしょうか。プリプロセッサやポストプロセッサが持つ変数とちがい、ちゃんと継承されるというのが特徴です。これを利用し、Jake Archibaldが、<code>display</code> の値をカスタムプロパティで定義し、外部CSSが読み込まれた際に <code>block</code> に書きかえさせ段階的にCSSを読み込ませるというアイデアを披露しています。</p>

<ul>
<li><a href="https://jakearchibald.com/2016/css-loading-with-custom-props/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Control CSS loading with custom properties &#8211; JakeArchibald.com</a></li>
</ul>

<p>V8も更新され、ES2015のdestructuringとdefault parametersが使えるようになりました。また、Promiseのrejectionを検知する <a href="https://googlechrome.github.io/samples/promise-rejection-events/index.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>unhandledrejection</code> イベントおよび <code>rejectionhandled</code> イベント</a>もサポートされました。</p>

<h2>Firefox 45と innerText</h2>

<p>3月8日に、Firefox 45がリリースされました。</p>

<ul>
<li><a href="https://www.mozilla.jp/firefox/45.0/releasenotes/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox 45.0 リリースノート</a></li>
</ul>

<p>ES 2015のClass構文が有効にされています。うれしいですね。</p>

<p>他には、他ブラウザとの互換性のため <a href="https://developer.mozilla.org/ja/docs/Web/API/Node/innerText" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>innerText</code> プロパティ</a>がサポートされました。要素内の「レンダリングされたテキスト」を取得するプロパティです。</p>

<p>この「レンダリング」というのが曲者です。要素内の文字列を取得するには <code>textContent</code> プロパティがありますが、こちらは「DOM要素内のテキスト」なので <code>display: none</code> などが指定された要素内のテキストももちろん返ります。いっぽう、 <code>innerText</code> はレンダリング結果を考慮するため <code>display: none</code> な要素内のテキストは結果に入りません。</p>

<p><code>innerText</code> はブラウザ拡張などで外部サイトをいじったりするときには便利だったりしますが、レイアウトを行うため<a href="http://kellegous.com/j/2013/02/27/innertext-vs-textcontent/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">パフォーマンスに影響</a>があります。単純に要素のテキストを取得したい場合は <code>textContent</code> を使いましょう。</p>

<h2>WebAssembly実装のプレビュー</h2>

<p>3月15日に、Mozilla、Google、Microsoftが、WebAssemblyの実験的なサポート状況について公開しました。WebAssemblyの試験実装は昨年から進められていますが、3ブラウザで相互運用可能な状態になったとのことです。</p>

<ul>
<li><a href="https://www.mozilla.jp/blog/entry/10539/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly が 1 つのマイルストーンを達成しました： 複数ブラウザによる実験的なサポートがはじまりました | Mozilla Japan ブログ</a></li>
<li><a href="http://googledevjp.blogspot.jp/2016/03/v8-webassembly.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Google Developers Japan: V8 で WebAssembly を試験運用開始</a></li>
<li><a href="https://blogs.windows.com/msedgedev/2016/03/15/previewing-webassembly-experiments/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Previewing WebAssembly experiments in Microsoft Edge | Microsoft Edge Dev Blog</a></li>
</ul>

<p>FirefoxとChromeについては、NightlyやCanaryでフラグを有効にすると試せます。</p>

<p>WebAssemblyについては、中心人物のひとり、MozillaのLuke Wagner氏へのインタビューが面白いです（インタビューの場に混ぜていただきました）。インタビューが行われたMozillaのView Source Conferenceでのセッション資料も参考になります。</p>

<ul>
<li><a href="http://codezine.jp/article/detail/9072" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ハイパフォーマンスなWebを実現するasm.js／WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く：CodeZine（コードジン）</a></li>
<li><a href="http://people.mozilla.org/~lwagner/wasm-view-source/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebAssembly</a></li>
</ul>

<p>また、先日ポッドキャストでのインタビューも行われています。こちらもあわせてどうぞ。</p>

<ul>
<li><a href="http://chariotsolutions.com/podcast/techcast-94-luke-wagner-webassembly/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">TechCast #94 &#8211; Luke Wagner on WebAssembly</a></li>
</ul>

<h2>Edgeの拡張がプレビュー版に</h2>

<p>Microsoft Edgeの拡張機能が、ついにプレビュー版に入りました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/03/17/preview-extensions/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edge extensions now available to preview | Microsoft Edge Dev Blog</a></li>
</ul>

<p>拡張は正式リリース時にはWindows Storeから追加できるようになるそうです。</p>

<p>拡張の構造はChrome拡張互換のAPIですが、現時点では本家やMozillaの<a href="https://developer.mozilla.org/ja/Add-ons/WebExtensions" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebExtensions</a>と少し違い、<code>chrome</code> オブジェクトが <code>browser</code> オブジェクトに変わっているそうです。ちょっと面倒ですね。</p>

<ul>
<li><a href="http://www.misuzilla.org/Blog/2016/03/21/HowToCreateExtensionForMicrosoftEdgeInsiderPreview" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Micorosoft Edge(プレビュー)の拡張を作ってみる &#8211; ぷろじぇくと、みすじら。</a></li>
<li><a href="http://www.misuzilla.org/Blog/2016/03/21/InspectExtensionPlatformOfMicrosoftEdgeInsiderPreview" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Micorosoft Edge(プレビュー)の拡張について調べる、デバッグする方法 &#8211; ぷろじぇくと、みすじら。</a></li>
</ul>

<p>サポート予定のAPIは<a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ロードマップ</a>が公開されています。Firefox, Edge, Chromium系で（だいたい）同じコードで拡張が動くようになるのでやる気がでますね。</p>

<h2>Safari 9.1リリース、さらにTechnology Preview登場</h2>

<p>3月21日に、OS X 10.11.4とiOS 9.3がアップデートされ、Safari 9.1がリリースとなりました。WebKitのブログで新しい機能が紹介されています。</p>

<ul>
<li><a href="https://webkit.org/blog/6008/new-web-features-in-safari/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">New Web Features in Safari</a></li>
</ul>

<p>新しい機能は内部的に利用されてもいるようで、追加されたCSS Custom Propertiesを使い、Web Inspectorのコードをシンプルにした話もエントリとして公開されています。</p>

<ul>
<li><a href="https://webkit.org/blog/5989/css-variables-in-webkit/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Variables in WebKit</a></li>
</ul>

<p>さらに、3月30日、Safari Technology Previewという開発者向けのビルドが公開されました。</p>

<ul>
<li><a href="https://webkit.org/blog/6017/introducing-safari-technology-preview/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing Safari Technology Preview</a></li>
</ul>

<p>Safari Technology Previewはリリース版のSafariよりも新しいWebKitを搭載したビルドで、2週間にいちど更新されます。最初のビルドではES2015のArrow Functionsやイテレータ、Web標準ではShadow DOM (v1)などが使えるようになっています。</p>

<p>なお、レンダリングエンジンのWebKitはこれまでもナイトリービルドを提供していましたが、Safari Technology Previewは独立したUIを持ち、App Storeから更新されるといった違いがあります。</p>

<p>現段階でiOS版のプレビューは提供されていませんが、<a href="https://twitter.com/grorgwork/status/715481892548513794" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">多くの人がそれを望んでるだろうとは認識している</a>とのこと。こちらのほうが出ると嬉しいので、要望をあげましょう。</p>

<p><img src="/wp-content/uploads/2016/04/yakura-3-207x161.jpg" alt="" width="207" height="161" class="aligncenter size-full wp-image-18774" /></p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>Visual Studio Codeが、Edgeより先にChrome連携─2016年2月のブラウザ関連ニュース振り返り</title>
		<link>/myakura/18748/</link>
		<pubDate>Thu, 14 Apr 2016 00:30:48 +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[Visual Studio Code]]></category>

		<guid isPermaLink="false">/?p=18748</guid>
		<description><![CDATA[連載： WEB標準化動向 (10)2016年2月のブラウザニュースは、Microsoft Edgeの新機能やFirefoxのリリースサイクル変更、Visual Studio CodeとChrome連携、Safari 9....]]></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> (10)</div><p>2016年2月のブラウザニュースは、Microsoft Edgeの新機能やFirefoxのリリースサイクル変更、Visual Studio CodeとChrome連携、Safari 9.1のWeb Inspectorなどについて紹介します。</p>

<h2>2016年のMicrosoft Edge</h2>

<p>Edgeの今年の計画が発表されました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/02/03/2016-platform-priorities/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Looking ahead: Microsoft Edge for developers in 2016 | Microsoft Edge Dev Blog</a></li>
</ul>

<p>パフォーマンス向上などはもちろん、アクセシビリティやコミュニティと積極的に関わると書いてあるのは心強いですね。</p>

<p>新しい仕様の実装に関しては、こんなふうに言っています。</p>

<blockquote>Our goal is to find the right approach to implementing new web standards features that may undergo rapid evolution, potentially causing unneeded turbulence for web developers (e.g. Flexbox or WebRTC/ObjectRTC), or may gather popularity and then be abandoned for various reasons (e.g. Object.observe() or SMIL).</blockquote>

<p><br>
Flexboxの構文変更や <code>Object.observe()</code> の削除など、開発者に不必要な混乱をもたらすことは避けつつも、日々更新されるWeb標準の実装によいアプローチを見つけることをゴールとしているそうです。標準化団体やChromeチームのやり方を軽く牽制しているようにも感じますね。</p>

<p>ともかく、こうしたゴールを設定したうえで、ECMAScriptのModules、WOFF 2.0、ES 2016以降の機能いくつかの実装を開始したと発表しました。また、Service Worker実装の初期段階としてFetch APIの実装も始めています。</p>

<p>Edgeの機能ですが、すでに検討中のものは<a href="https://dev.windows.com/en-us/microsoft-edge/platform/status/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">EdgeのPlatform statusページ</a>で、そこにないものは<a href="https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">開発者向けのフィードバックサイト</a>から投票・提案できるので、ぜひ見てみましょう。</p>

<h2>Firefoxのリリースが6〜8週のサイクルに</h2>

<p>Firefoxのリリースが、6〜8週のサイクルへと変更されることが発表されました。</p>

<ul>
<li><a href="https://blog.mozilla.org/futurereleases/2016/02/04/update-on-2016-firefox-release-schedule/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Update on 2016 Firefox Release Schedule | Future Releases</a></li>
</ul>

<p>Firefoxは2011年春より、6週間で新しいメジャーバージョンをリリースしています。Chromeも2010年夏より6週のモデルでリリースしていますが、ときには8週近くになるなど、柔軟なスケジュールとなっています（なのでほんの少しずつですが、FirefoxとChromeのバージョンの差が縮んでいました）。</p>

<p>今回の変更でサイクルが可変になるものの、リリース予定日は公表されており、また1年にリリースされるバージョンもこれまでと一緒のことです。年末にはFirefox 50になっているなんて、すごいですねー。</p>

<h2>VS CodeでChrome DevToolsと連携</h2>

<p>Microsoftが提供するVisual Studio Codeに、Chromeと連携する拡張が提供されました。しかもMicrosoft製です。</p>

<ul>
<li><a href="http://code.visualstudio.com/blogs/2016/02/23/introducing-chrome-debugger-for-vs-code" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Introducing Chrome Debugging for VS Code</a></li>
</ul>

<p>Chrome DevToolsのDebugger Protocolを拡張で実装したということみたいです。</p>

<p>それにしてもEdgeよりも先にChromeとは…。そして、“For now we are support Google Chrome, but we’re also looking at expanding our support to Microsoft Edge and other browsers” と、Edgeだけでなく他のブラウザにも目を向けているとのこと。FirefoxやSafariとも繋がるのでしょうか。</p>

<h2>Safari 9.1のWeb Inspector</h2>

<p>1月分で取り上げたSafari 9.1のWeb Inspectorでは、CSS編集が強化されているとのこと。</p>

<ul>
<li><a href="https://webkit.org/blog/5663/editing-css-with-the-visual-styles-sidebar/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Editing CSS with the Visual Styles Sidebar | WebKit</a></li>
</ul>

<p>これまでのStylesパネルは他の開発者ツールとだいたい同じでしたが、新しく追加されるVisual Stylesパネルでは、スライダーやドロップダウンリストなどが、GUIからスタイルを編集できるようになります。Keynoteみたいですね。</p>

<p>GUIでのスタイル編集は、Chromeも少しずつ進めており、カラーピッカーにMaterial Designのパレットを導入したりなどしています。また、要素のmarginや大きさをクリック＆ドラッグで編集できるLayout Modeも試験機能ではありますが実装しています。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>【HTML5 Experts.jp】2016年1月のブラウザ関連ニュース</title>
		<link>/myakura/18382/</link>
		<pubDate>Wed, 09 Mar 2016 00:00:26 +0000</pubDate>
		<dc:creator><![CDATA[矢倉 眞隆]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chakra]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=18382</guid>
		<description><![CDATA[連載： WEB標準化動向 (9)2016年1月のブラウザニュースは、Safari 9.1のリリース、Firefox 44リリース、Chrome 48リリース、EdgeのJavaScriptエンジンChakraのオープンソ...]]></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> (9)</div><p>2016年1月のブラウザニュースは、Safari 9.1のリリース、Firefox 44リリース、Chrome 48リリース、EdgeのJavaScriptエンジンChakraのオープンソース版「ChakraCore」についてお届けします。<br></p>

<h2>Safari 9.1発表</h2>

<p>iOS 9.3とOS X 10.11.4のベータ版が開発者向けに提供され、その中でSafari 9.1のリリースが明らかとなりました。</p>

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

<p>9.1では先月紹介したタップ時の350msの遅延をなくす仕組みや、CSS Custom Properties（CSS Variables）、<code>font-feature-settings</code> プロパティとそれに関連する <code>font-variant</code> 系サブプロパティ、<code>will-change</code> プロパティがサポートされるようです。</p>

<p>セキュリティや安定性向上のためのアップデートではない、マイナーアップデートは久しぶりです。Safariはこれまで、新しい機能の追加やバグの修正を年一度のメジャーアップデートでしか提供しておらず、開発者の不満を高めていました。ChromeやFirefox、Edgeほどを望む必要があるかはわかりませんが、9.1のようにエンジンのバージョンアップを含むリリースがもうすこしあるとうれしいですね。</p>

<h2>Firefox 44リリース、Service Workerが有効に</h2>

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

<p>このバージョンでついにFirefoxでもService Workerが有効になりました。</p>

<p>CSSの <a href="https://developer.mozilla.org/docs/Web/CSS/%40font-face/unicode-range" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><code>unicode-range</code></a> デスクリプタがサポートされました。</p>

<p>開発者ツールではCSS Animationsのエディタが協力になりました。Chromeにもあるような、スライダーでアニメーションの状態を逐次確認できるようなUIがついています。</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Work_with_animations" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Work with animations &#8211; Firefox Developer Tools | MDN</a></li>
<li><a href="https://hacks.mozilla.org/2015/11/developer-edition-44-creative-tools-and-more/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Developer Edition 44: New visual editing and memory management tools ★ Mozilla Hacks – the Web developer blog</a></li>
</ul>

<p>CSSアニメーションを学べるDevTools Challengerというサイトも、44がDeveloper Editionだった昨年11月ころから公開されています。アニメーションで動く深海生物を開発者ツールから操作するというチュートリアルです。</p>

<ul>
<li><a href="http://devtoolschallenger.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">DevTools Challenger</a></li>
</ul>

<h2>Chrome 48リリース、縦書きCSSの向上</h2>

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

<p>このリリースで、CSS Writing Modesの接頭辞がとれました。Writing Modesについては昨年末のCodeGridで取り上げられています。</p>

<ul>
<li><a href="https://app.codegrid.net/series/2015-vertical-script" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ブラウザにおける縦書き最新事情 ― CodeGrid</a></li>
</ul>

<p>また、OpenTypeフォントの機能にアクセスする <code>font-feature-settings</code> も接頭辞がとれました。Safari 9.1の公開も近いようなので、接頭辞まわりがだいぶすっきりしますね。</p>

<h2>ChakraCoreが公開</h2>

<p>12月分で取り上げた、EdgeのJavaScriptエンジンChakraのオープンソース版「ChakraCore」ですが、1月13日に公開されました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/01/13/chakracore-now-open/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ChakraCore GitHub repository is now open | Microsoft Edge Dev Blog</a></li>
</ul>

<p><a href="https://github.com/Microsoft/ChakraCore/wiki/Roadmap" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ロードマップ</a>も公開されています。JITなしでUbuntuでもまず動かせるようにするとか、WebAssemblyへの対応、Async FunctionをECMAScript仕様に持っていくといったことが書かれています。</p>

<p>一週間後には、ChakraCoreをNodeのエンジンにするべくPull Requestが投げられました。</p>

<ul>
<li><a href="https://blogs.windows.com/msedgedev/2016/01/19/nodejs-chakracore-mainline/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Submitting a Pull Request to Node.js with ChakraCore | Microsoft Edge Dev Blog</a></li>
</ul>

<p>JavaScriptエンジンの競争がさらに盛んになってきそうですね。</p>
]]></content:encoded>
		
		<series:name><![CDATA[WEB標準化動向]]></series:name>
	</item>
		<item>
		<title>iOS7におけるMobile Safariの主な変更点</title>
		<link>/shumpei-shiraishi/2602/</link>
		<pubDate>Thu, 19 Sep 2013 10:34:09 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[デザイン]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=2602</guid>
		<description><![CDATA[iOS7上のSafariがどのように変化したかについて、Maximiliano Firtman氏（@firt）がブログで詳細に解説しています。 この記事では、同氏のブログから、Web制作者／開発者にとって重要と思われる情...]]></description>
				<content:encoded><![CDATA[<p>iOS7上のSafariがどのように変化したかについて、Maximiliano Firtman氏（<a href="https://twitter.com/firt" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">@firt</a>）が<a href="http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ブログで詳細に解説しています</a>。
この記事では、同氏のブログから、Web制作者／開発者にとって重要と思われる情報を引用して、Web技術者にとっても大きな影響を持つこのアップデートについて紹介していきたいと思います。</p>

<p><span id="more-2602"></span></p>

<p>元記事は非常に長大、かつ詳細なため、全てのポイントを紹介することはとてもできません。素晴らしい記事ですので、関心のある人は、ぜひ元記事を参照してください。</p>

<p>ちなみに、最初にガッカリさせることになってしまいますが、@firt氏によれば、「<em>1.0以降最もバグの多いバージョンだ</em>」（<q>this is the buggiest Safari version since 1.0</q>）だそうです…</p>

<h2>UIが大幅に変更、フルスクリーン（に近いサイズ）がデフォルトに</h2>

<p>Webブラウジングをしている最中は、フルスクリーンがデフォルトになりました。ホスト名部分をクリックしたり、トップに戻るようスクロールを始めた時に、URLバーとツールバーが表示されます。</p>

<div id="attachment_2596" style="width: 179px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2013/09/2013-09-19-18.15.26.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/2013-09-19-18.15.26-169x300.png" alt="Webページはフルスクリーンに近いサイズで表示される" width="169" height="300" class="size-medium wp-image-2596" srcset="/wp-content/uploads/2013/09/2013-09-19-18.15.26-169x300.png 169w, /wp-content/uploads/2013/09/2013-09-19-18.15.26-576x1024.png 576w, /wp-content/uploads/2013/09/2013-09-19-18.15.26-116x207.png 116w, /wp-content/uploads/2013/09/2013-09-19-18.15.26.png 360w" sizes="(max-width: 169px) 100vw, 169px" /></a><p class="wp-caption-text">Webページはフルスクリーンに近いサイズで表示される</p></div>

<div id="attachment_2600" style="width: 179px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2013/09/2013-09-19-16.32.49.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/2013-09-19-16.32.49-169x300.png" alt="ユーザーの操作に応じてツールバーが出現する" width="169" height="300" class="size-medium wp-image-2600" srcset="/wp-content/uploads/2013/09/2013-09-19-16.32.49-169x300.png 169w, /wp-content/uploads/2013/09/2013-09-19-16.32.49-576x1024.png 576w, /wp-content/uploads/2013/09/2013-09-19-16.32.49-116x207.png 116w, /wp-content/uploads/2013/09/2013-09-19-16.32.49.png 360w" sizes="(max-width: 169px) 100vw, 169px" /></a><p class="wp-caption-text">ユーザーの操作に応じてツールバーが出現する</p></div>

<p>問題は、ツールバーの表示／非表示が切り替わった際にresizeイベントが発生せず、メディアクエリなどでも検知できないことです。これにより、画面の高さが変わったことをアプリが検知できないということになり、なるべく固定の幅や高さを確保しようとするゲームなどでは、時に大きな問題になります。
また、ネイティブではないスクロール（iframeやoverflow:scroll、JavaScriptベースのスクロールなど）を使用しているアプリの場合は、ツールバーが表示されっぱなしになってしまう事があります。</p>

<div id="attachment_2599" style="width: 179px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2013/09/2013-09-19-16.27.16.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/2013-09-19-16.27.16-169x300.png" alt="Appleのサイトもネイティブのスクロールを使用していないためか、URLバーとツールバーが表示され続ける" width="169" height="300" class="size-medium wp-image-2599" srcset="/wp-content/uploads/2013/09/2013-09-19-16.27.16-169x300.png 169w, /wp-content/uploads/2013/09/2013-09-19-16.27.16-576x1024.png 576w, /wp-content/uploads/2013/09/2013-09-19-16.27.16-116x207.png 116w, /wp-content/uploads/2013/09/2013-09-19-16.27.16.png 360w" sizes="(max-width: 169px) 100vw, 169px" /></a><p class="wp-caption-text">Appleのサイトもネイティブのスクロールを使用していないためか、URLバーとツールバーが表示され続ける</p></div>

<h2>新しいジェスチャー</h2>

<p>新しいSafariでは、画面端からスワイプするというジェスチャーに操作が割り当てられました。
画面の下端から上に向かってジェスチャーすることで<a href="http://www.apple.com/jp/ios/whats-new/#control-center" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">コントロールセンター</a>を表示でき、画面の横端から右／左にスワイプすることで「戻る／進む」といったナビゲーションを行えます。</p>

<p>スワイプ操作を取り扱っているWebアプリは、画面端に適切なマージンを設けていない限り、これらのジェスチャーと被ってしまう可能性があります。</p>

<p>また、右・左のスワイプ操作に割り当てられている「戻る／進む」と言ったナビゲーションは、ナビゲーション前後のページが重ねて表示されます。こうした動作は、履歴管理API（History API）を用いる単一ページアプリケーションでは多少問題になるかもしれません。同じアプリのUIが重ねて表示されることになるためです。</p>

<div id="attachment_2598" style="width: 179px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2013/09/2013-09-19-17.18.39.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/2013-09-19-17.18.39-169x300.png" alt="History APIを使用するアプリケーションでは、同じアプリのUIが重ねて表示されてしまう" width="169" height="300" class="size-medium wp-image-2598" srcset="/wp-content/uploads/2013/09/2013-09-19-17.18.39-169x300.png 169w, /wp-content/uploads/2013/09/2013-09-19-17.18.39-576x1024.png 576w, /wp-content/uploads/2013/09/2013-09-19-17.18.39-116x207.png 116w, /wp-content/uploads/2013/09/2013-09-19-17.18.39.png 360w" sizes="(max-width: 169px) 100vw, 169px" /></a><p class="wp-caption-text">History APIを使用するアプリケーションでは、同じアプリのUIが重ねて表示されてしまう</p></div>

<h2>HTML5関連の変更</h2>

<ul>
<li>track要素のサポート・・・動画や音声に対して、文字による補足情報（字幕やチャプタータイトルなど）を追加できる、track要素がサポートされました。JavaScript API（webkitHasClosedCaptions）やCSS（::cue擬似要素）もサポートされています。ただし、::cue擬似要素で使用できるプロパティはtext-shadow, opacity, outlineだけです。</li>
<li>progress要素のサポート・・・進捗状況を表すprogress要素がサポートされました。また、meter要素は<del>サポートしようとした形跡はあるものの、画面に何も表示されないというバグがあるそうです(^^;</del><ins><a href="http://trac.webkit.org/changeset/153730" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">意図的に無効にされており</a>、利用できません。</ins><small>(<a href="https://html5experts.jp/myakura/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">エキスパートNo.18 矢倉さん</a>の指摘により修正)</small></li>
<li>output要素のサポート・・・プログラムによる計算結果を意味すすoutput要素がサポートされました。</li>
<li>input要素のdatetimeタイプが削除された・・・代わりに、<del>dateタイプとtimeタイプを合わせて使うことが推奨されています。</del><ins>datetime-localタイプを使用してください。</ins><small>(<a href="https://html5experts.jp/myakura/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">エキスパートNo.18 矢倉さん</a>の指摘により修正)</small></li>
<li>iframe要素のseamless属性がサポートされた・・・シームレスなiframeには、親要素のCSSが適用されます。</li>
</ul>

<h2>JavaScript API関連の変更</h2>

<ul>
<li>Page Visibility APIのサポート・・・ページの表示状態（表に表示されているか、裏に回っているか）を検知できるAPI</li>
<li><del>XMLHttpRequest Level2のフルサポート・・・blobの送受信やアップロードの進捗状況を取得すると言った事が可能になりました。</del><small>(<a href="https://html5experts.jp/myakura/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">エキスパートNo.18 矢倉さん</a>の指摘により削除。XMLHttpRequest Level2は、仕様としてはもはや存在せず、<a href="http://www.w3.org/TR/XMLHttpRequest/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">XMLHttpRequestの仕様に統合されています</a>)</small></li>
<li>AirPlay APIが導入されました・・・Apple TVと連携した<a href="http://www.apple.com/jp/airplay/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AirPlay</a>を、Webアプリケーションから制御することができます。</li>
<li>CanvasのAPIが拡充・・・globalCompositeOperation属性やPathクラスがサポートされました。</li>
<li>Shared Workerが削除・・・複数のWebページ間で一つのワーカーインスタンスを共有するためのShared Workerが削除されました。</li>
<li>WebSpeech Synthesis APIがサポートされましたが、正しく動作しません。</li>
<li>MutationObserverがサポートされました。</li>
<li>requestAnimationFrameからwebkitプレフィックスが取れました。</li>
<li>transitionendイベント名からwebkitプレフィックスが取れました。</li>
<li>Web Audio APIからwebkitプレフィックスが取れました。</li>
<li>hidden属性がサポートされました。</li>
<li>visibilityState属性がサポートされました。</li>
<li>window.doNotTrackプロパティがサポートされました。</li>
<li>Web SQL Database APIが、5MB以上のストレージ容量を扱えなくなりました（以前は上限50MBまで利用可能だった）。5MB以上のデータを保存しようとすると例外（DOMException）が発生します。</li>
</ul>

<h2>CSS関連の変更</h2>

<ul>
<li><p><a href="http://lists.w3.org/Archives/Public/www-style/2012Jun/0627.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">position:sticky</a>のサポート・・・<code>position: sticky</code>を指定された要素は、スクロールによって表示領域から追い出されそうになると、画面端に吸い付くように表示されます。<a href="http://html5-demos.appspot.com/static/css/sticky.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちらのデモ</a>で動作を確認することができます。
<div id="attachment_2601" style="width: 179px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2013/09/2013-09-19-18.27.25.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2013/09/2013-09-19-18.27.25-169x300.png" alt="position: stickyをMobile Safariで動作させた様子" width="169" height="300" class="size-medium wp-image-2601" srcset="/wp-content/uploads/2013/09/2013-09-19-18.27.25-169x300.png 169w, /wp-content/uploads/2013/09/2013-09-19-18.27.25-576x1024.png 576w, /wp-content/uploads/2013/09/2013-09-19-18.27.25-116x207.png 116w, /wp-content/uploads/2013/09/2013-09-19-18.27.25.png 360w" sizes="(max-width: 169px) 100vw, 169px" /></a><p class="wp-caption-text">position: stickyをMobile Safariで動作させた様子</p></div></p></li>
<li><p><a href="http://www.w3.org/TR/2013/WD-css3-regions-20130528/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Regions</a>・・・複数の要素にまたがってコンテンツを「流しこむ」ことができ、雑誌のようなレイアウトを実現できます。<a href="http://letmespellitoutforyou.com/samples/region_mq_sample.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちらのデモ</a>を試してみてください。</p></li>
<li><a href="http://dev.w3.org/csswg/css-grid/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Grid Layout</a>・・・要素をグリッド状に配置することのできる仕様です。うまく動作しないそうです。</li>
<li><a href="http://dev.w3.org/csswg/css-flexbox/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Flexbox</a>・・・コンテナ上で要素を縦横に柔軟に配置することのできる仕様です。</li>
<li><p>動的なフォント・・・筆者も詳細は理解できていないのですが、「読みやすさを向上するために、現在のフォントサイズをベースとして、フォントの重さや文字の間隔などが調整される、とあります。以下に示すような、<code>-apple-</code>というプレフィックスを持つ定数を多数利用してフォント定義を行っていくようです。</p>

<p>h1 { font: -apple-system-headline1 }
p { font: -apple-system-body }</p></li>
<li><p>CSS Transitionからプレフィックスが取れた</p></li>
<li>丸や四角、多角形などの図形にしたがってコンテンツの切り抜きを行える<a href="http://www.html5rocks.com/en/tutorials/masking/adobe/?redirect_from_locale=ja" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSSクリップパス</a>のサポート。</li>
<li>フォントのカーニングや合字がデフォルトで利用可能になった</li>
<li><a href="http://www.htmq.com/css3/box-decoration-break.shtml" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">box-decoration-break: slice/clone</a>のサポート</li>
<li><a href="https://developer.mozilla.org/ja/docs/Web/CSS/tab-size" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">tab-size</a>のサポート</li>
<li><a href="http://docs.webplatform.org/wiki/css/properties/word-wrap" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">overflow-wrap: normal/hypernate/break-word</a></li>
<li>長さの単位としての<a href="http://www.w3.org/TR/css3-values/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">chやvmaxのサポート</a></li>
<li><a href="http://www.w3.org/TR/css-masking/#the-mask-type" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">mask-type: alpha</a>のサポート</li>
</ul>

<h2>終わりに</h2>

<p>iOS 7のMobile Safariは、Indexed Database APIやWebGL、WebRTCなどの期待される機能は搭載されませんでしたが、細かいアップデートがたくさん行われています。
特に、track要素やCSS Flexboxのサポートは嬉しいですね。
ただ、バグが多いらしいので、Web開発者は頭を悩ませる日々が続きそうです…</p>

<p>この記事では、Webページを記述する際にポイントとなりそうな変更点に絞ってご紹介しました。
繰り返しになりますが、この記事の元になったMaximiliano Firtman氏（<a href="https://twitter.com/firt" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">@firt</a>）の<a href="http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ブログ記事</a>は素晴らしいリソースですので、ぜひ一度目を通してみてください。</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
