<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>シャンディ・ガフを飲みながら</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/" />
    <link rel="self" type="application/atom+xml" href="http://shoonm.com/atom.xml" />
    <id>tag:shoonm.com,2009-09-13:/1</id>
    <updated>2012-05-08T12:14:00Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/" version="4.261">Movable Type Pro</generator>

<entry>
    <title>Webデザインの特性、基本的な考え方について</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2012/05/webweb.html" />
    <id>tag:shoonm.com,2012://1.54</id>

    <published>2012-05-08T12:04:46Z</published>
    <updated>2012-05-08T12:14:00Z</updated>

    <summary>多デバイス化によって生活が便利になっていく中で、Webのあり方もどんどん変化して...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Design" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>多デバイス化によって生活が便利になっていく中で、Webのあり方もどんどん変化しているように思います。理解を深めるためにも、Webデザインに関する記事を何回かに渡って書いていこうと思います。</p>

<p>まず、グラフィックデザインとWebデザインはまったく別ものであるということについて。DTPの考え方を引き継いでいることもあり、あらゆる環境下で「同じ見た目」にするという風潮がWebにおいてもあります。IE6で同じ見た目にならないために大変な労力をかけている現状を見てもそれは明らかです。</p>

<p>しかし、印刷物である紙媒体とは違って、Webは見た目を完全にコントロールすることに長けていません。紙媒体がオブジェクトを動かせないことと同じように、特性による向き不向きはあります。</p>

<p>よく言われますが、Webデザインはグラフィックデザインよりも、プロダクトデザインに近い部分があります。見た目の美しさだけではなく、利用者の環境や、利用するシチュエーションなどを考慮し、"機能美"を追求するデザイン。</p>

<p>どの分野のデザインでも、利用者のことを徹底的に考え抜くという過程を省いては成り立ちませんが、プロダクトデザインやWebデザインは、見栄えよりも、目に見えているもの以外を考慮することに時間を費やします。つまり、<strong>Webデザインにおいてコントロールすべきことは見た目ではなく、利用者をゴールに誘導するためのデザイン</strong>にあるということです。</p>

<p>それには、マーケティングやブランディング、UI設計に至るまで様々な知識が必要になりますし、それらを具現化するためのビジュアルデザイン、インタラクションデザインも欠かせません。それら全てが利用者に価値を与えるために必要な知識であり、Webデザインに求められていることではないでしょうか。</p>

<p>次回はコンテンツの重要性など、などもうちょっと専門的な内容を書きたいと思っております。なんだか今回は当たり前のことしか書いてないような(´・ω・`；)</p>]]>
        
    </content>
</entry>

<entry>
    <title>IE6やiPhoneにもvideoとaudio要素を対応させるJS</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2011/08/ie6iphonevideoaudiojs.html" />
    <id>tag:shoonm.com,2011://1.53</id>

    <published>2011-08-15T16:42:38Z</published>
    <updated>2011-08-15T16:51:34Z</updated>

    <summary>以下のソースを追加するだけでFirefox、Safari、Chrome等の高水準...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Html" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>以下のソースを追加するだけでFirefox、Safari、Chrome等の高水準ブラウザはもちろん、IE6～IE9、そしてiPhone、androidでも閲覧が可能になります。</p>

<pre><code class="html plain">&lt;</code><code class="html keyword">script</code> <code class="html color1">src</code><code class="html plain">=</code><code class="html string">"http://api.html5media.info/1.1.4/html5media.min.js"</code><code class="html plain">&gt;&lt;/</code><code class="html keyword">script</code><code class="html plain">&gt;</code></pre>

<p>HTML5から追加されたvideo,audio要素による動画配信はFlashの代替手段として注目されていましたが、ブラウザごとに採用されているコーデックの違いにより現実的な実装は難しいとされていました。</p>

<p>「<a href="https://github.com/etianen/html5media" target="_blank" />html5media</a>」はvideo要素に対応していないブラウザを判別して、「<a href="http://flowplayer.org/" target="_blank" />flowplayer</a>」を利用したFlash動画プレイヤーに切り替えてくれます。対応の可否を自動で判別し、互換性を担保してくれるのはブラウザごとの対応を考えなくて済むので便利ですね。</p>

<p><a href="http://code.google.com/p/html5media/" target="_blank" />html5mediaのダウンロードはこちら</a></p>

<p><a href="http://code.google.com/p/html5media/" target="_blank" />デモはこちら</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>「Bright Siren」 メッセージ性の強いPV</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2011/08/bright-siren-pv.html" />
    <id>tag:shoonm.com,2011://1.52</id>

    <published>2011-07-31T18:57:03Z</published>
    <updated>2011-08-01T06:45:03Z</updated>

    <summary> androp「Bright Siren」special site Androp...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<a target="_blank" href="http://www.androp.jp/brightsiren/"><img width="650" height="387" style="text-align: center; display: block; margin: 0pt auto 20px;" class="mt-image-center" src="http://shoonm.com/im_androp_02.jpg" alt=""></a>
<p><a target="_blank" href="http://www.androp.jp/brightsiren/">androp「Bright Siren」special site</a></p>

<p>Andropというバンドの「Bright Siren」という曲のPVが公開されたのですが、そのアートディレクションをPARTYの皆様が手がけたということで注目を集めています。プログラミングでカメラ250台を制御し、ストロボの光で独自の世界観を演出しています。</p>

<p>僕が個人的に素晴らしいと思った点は以下の通り。</p>

<ul>
<li>「思い出」をテーマにした曲にカメラという記憶媒体を用いた発想</li>
<li>PVとしてちゃんとカッコいい演出がされていること</li>
<li>ユーザーが「PVに参加する」という体験を与えていること</li>
</ul>

<p>アーティスト限らずですが、創られる全ての万物には、伝えたいメッセージがあるはずで、僕らものづくりに関わる人間はまず、クライアント(発信者)のことを深く理解する必要があると思います。「Bright Siren」という曲では、"君"というおそらくは当時の恋人に対しての葛藤が描かれており、相手に対してさよならを告げ、次に進もうとする主人公の前向きで健気なメッセージが伝わってきます。</p>

<p>そして、そのメッセージを250台のカメラが織り成す光で表現し、PVにメッセージを組み込むことで、特定の誰かにメッセージが届けられる── まさにこのPVそのものが手紙のような媒体となっているところにこの作品の素晴らしさがあると思います。</p>

<p>相手から伝えたいことを汲み取り、それをどう表現するかを考える。クリエイティブに関わる人間としては学ぶものが多くある作品でした。次回作も期待しています。</p>

<p style="width:560px; margin:0 auto;"><iframe width="560" height="349" src="http://www.youtube.com/embed/hYgw7XRf5nc?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p><a target="_blank" href="http://www.youtube.com/watch?v=hYgw7XRf5nc&feature=player_embedded">androp「Bright Siren」youtube動画</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>さらに効率的にデザイン力を身に付ける方法</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/05/post-29.html" />
    <id>tag:shoonm.com,2010://1.49</id>

    <published>2010-05-10T07:39:38Z</published>
    <updated>2010-05-11T00:52:51Z</updated>

    <summary>以前「効率的にデザイン力を身につける方法」という記事で、デザイン力とは単純なグラ...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Design" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Diary" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>以前「<a href="http://shoonm.com/2009/11/post-20.html">効率的にデザイン力を身につける方法</a>」という記事で、デザイン力とは単純なグラフィックスキルのことだけを指すのではなく、そのデザインである必然性を見て取れる"目利き"の能力であると述べました。そして、デザイン力を効率的に高める手段として『<em><em>模写</em></em>』をお勧めしました。</p>

<p>色使いからグラデーション、ホワイトスペースに至るまで、全てを忠実に再現し、『<em>なぜそのデザインなのか？</em>』をあらゆる観点から自分なりに分析することによって、デザインに必要な『<em>考える力</em>』を養うことができます。今回はその模写をするにあたり、活用すればさらに効果が見込めるリソースをご紹介します。</p>

<a href="http://webdesignledger.com/tutorials/20-high-quality-photoshop-web-design-tutorials" target="_blank"><img alt="tx_mosya.jpg" src="http://shoonm.com/tx_mosya.jpg" width="632" height="348" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

<p><a href="http://webdesignledger.com/tutorials/20-high-quality-photoshop-web-design-tutorials" target="_blank">20 High Quality Photoshop Web Design Tutorials</a></p>

<ins>
追記：もっとクオリティが高いチュートリアルサイトがありましたので、こちらもご確認ください。
<br />
<a href="http://www.1stwebdesigner.com/tutorials/web-design-layout-tutorials-2010/" target="_blank">60 Web Design Photoshop Layout Tutorials From 2010</a>
</ins>

<p>模写を行うには当然元となるデザインが必要になりますが、前回の記事では玉石混交の中から玉を選び出す手っ取り早い方法として『<em><a href="http://www.acc04.jp/" target="_blank">アックゼロヨンアワード</a></em>』の受賞作をチェックするということをお勧めしました。デザイン力を身に付けるにはそれだけでも十分なのですが、模写を行う以上Photoshopというツールの使い方はマスターする必要があります。いくら模写によって効率的にデザイン力が身に付くとはいえ、ツールの使い方がよく分からない、面倒くさいということになってしまうと先に進めなくなってしまうからです。</p>

<p>『<em><a href="http://webdesignledger.com/tutorials/20-high-quality-photoshop-web-design-tutorials" target="_blank">20 High Quality Photoshop Web Design Tutorials</a></em>』ではタイトル通り、クオリティの高いWebデザインのチュートリアルが20例紹介されています。ひとつひとつが詳細に解説されていて、初心者の方でも手順通りにやれば再現できるように作られています。英語に抵抗がある方でも多少Photoshopの理解がある人であればキャプチャを見るだけで操作方法は把握できるでしょう。</p>

<p>これで初心者の方に優しいということがお分かりかと思いますが、実は私を含め実務レベルでPhotoshopを使用している人であっても、痒いところに手が届くレイヤースタイルの使い方や、美しくレイアウトするためのガイド機能の使い方など、「今まで非効率なやり方をしていた」「この機能はこういう使い方も出来るのか」といった新しい発見があることは間違ありません。</p>

<p>ただし、今回のリソースはあくまで模写をするという前提で、有効に活用すればツールの使い方における効率化もできるよという話で、最初から答えを見ながらやるのはもはや『<em>模写</em>』ではなくなってしまいます。<strong>自分なりに試行錯誤し、制作者の意図を汲み取る、デザインの息遣いを感じ取ることを意識</strong>しなければデザイン力を身に付けることは出来ません。まずは自分で消化してから、「答え合わせ」をするようにしましょう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Web業界で不況を乗り切るための4つのこと</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/04/post-28.html" />
    <id>tag:shoonm.com,2010://1.48</id>

    <published>2010-04-23T15:37:35Z</published>
    <updated>2010-04-23T15:53:12Z</updated>

    <summary>ブログでは大言壮語な私ですが、実は現在無職です。昨年3年ほど勤めた制作会社を退職...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Diary" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>ブログでは大言壮語な私ですが、実は現在無職です。昨年3年ほど勤めた制作会社を退職し、フリーの仕事を請ける傍らで転職活動の準備を進めてきました。いくら準備万端にしても、100年に1度の不況と形容されるほどですから、そう簡単に事が運ぶとは思えません。そこで自分自身の振り返りも含めて、この不況を乗り越えるにはどのような能力が必要になるのかを考えてみようと思います。</p>

<h3>得意を見つける</h3>
<p>実力主義なWeb業界で生き残るためには、何かしらの武器を持っていなければ厳しいですが、逆に仕事さえできれば学歴や資格の有無などは大して影響しないということもいえます。教育環境が整っていて、新卒採用を行う企業もありますが、いわゆる制作会社と呼ばれる企業の多くが即戦力を求めています。最近では、一定期間募集枠を設けるというよりは一年中募集をかけて本当に優秀な人材が見つかった場合に採用を検討するという方式が主流になってきているように思います。</p>

<p>理由は単純に、無駄な人件費を増やしたくないというのと、2004年に労働基準法の解雇条項が改正されたことで、そう簡単に解雇が行えないというリスクもあります。広い裁量権が認められている試用期間であっても、本採用の拒否には正当性が求められるので、企業側も慎重になるはずです。もしあなたがWeb業界への就職、或いは転職を考えているのなら、何か一つでも得意なことを見つけてください。デザイナーであれば、グラフィックデザインが得意、イラストが得意、映像制作が得意、フロントエンド技術が得意など、<strong>それだけは誰にも負けないというものを身に付ければ、必ず人事の目に止まる</strong>はずです。後はその得意がどのように企業の利益になるのかを上手く伝えることができれば良いと思います。</p>

<h3>ノリシロを持つ</h3>
<p>以前「<a href="http://shoonm.com/2010/02/web-flash-vs-html.html">Webサイトをつくるコンセプト ～FLASH vs HTMLについて～</a>」でも述べた内容ですが、自分の分野だけに固執せず、広い視野を持って、相互補完しながら取り組もうということです。なぜならWeb制作者は職域が広く、他の職種と深く関わっているからです。それに、プロジェクトという単位でモノが作られる以上、通常一人で完結するということはまずありません。</p>

<p>仕事を受注してから実装されるまでに、あらゆる分野の専門家が関わりますが、『<em>誰のためにどのようなことをどのように伝えるのか</em>』という提供価値、即ちコンセプトとなる部分が明確でなければ、伝わるコンテンツなど出来るはずもありません。『<em>伝えるべきこと</em>』『<em>伝えたいこと</em>』を『<em>伝わる</em>』ようにするには、プロジェクトに携わるスタッフが同じ目的意識を持って取り組まなければ成り立たないのではないでしょうか。</p>

<p>Webサイト構築におけるプロジェクトであれば、要件定義、分析フェーズ、戦略フェーズ、設計フェーズ、実装フェーズ、運用フェーズという具合に、全てのプロセスが時系列に進んでいきます。もしコンセプトがメンバー間で共有されていなければ、次フェーズに進む段階で必ず齟齬が生じてしまいます。では具体的に図を用いて考察しましょう。</p>

<p>以下の図はユーザーエクスペリエンスを構成する要素です。Webサイトは『<em>テクノロジー</em>』『<em>ビジュアルコミュニケーション</em>』『<em>情報アーキテクチャ</em>』という3つの要素によって作られます。</p>

<p><img alt="im_ux_01.gif" src="http://shoonm.com/im_ux_01.gif" width="600" height="204" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>それぞれの要素が独立するとプロセスが『<em>点</em>』になり、次フェーズに進む段階で齟齬が生じ、無理な軌道修正を強いられてしまいます。実装フェーズになって仕様変更や、帳尻合わせが発生し、苦労した覚えのある方は多いのではないでしょうか。例えそのような状況下で形にしても、それはハリボテのような、中身がない『<em>伝わらない</em>』コンテンツになってしまいます。</p>

<p><img alt="im_ux_02.gif" src="http://shoonm.com/im_ux_02.gif" width="600" height="370" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>理想的なのは、プロジェクトに関わるメンバーが相互補完を行うことで、Webサイトの提供価値であるコンセプトが共有され、プロセスが『<em>線</em>』になることです。ユーザーエクスペリエンスを構成する3つの要素が互いに依存し、相関があるように、私たちWeb制作者も互いに補完し合うべきです。先日の「<a href="http://lp9.cssnite.jp/" target="_blank">CSS Nite LP, Disk 9</a>」で羽田野氏が『<em>HTML5が出て来たらFLASHがなくなるという議論はナンセンス。得意分野で相互補完</em>』とおっしゃっていましたが、まったくその通りで、お互いを理解する前に技術ありきの考え方をしてしまうのはスマートとはいえません。</p>

<p>コンセプトが重要であるというのを再三述べているのは、そこが明確でなければ『<em>何が必要で何が不要なのか</em>』が分からないからです。また、仮にコンセプトが明確であっても、メンバー同士がお互いの役割を理解していなければ、それこそ好き、嫌いという不毛な議論が発生してしまうでしょう。<strong>『<em>最適な選択</em>』を行っていくためには、明確なコンセプトを共有した上で、お互いの役割を理解し、相互補完を行っていく必要</strong>があるのです。</p>

<p><img alt="im_ux_03.gif" src="http://shoonm.com/im_ux_03.gif" width="600" height="330" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>一人で全てのことを理解するなんて不可能だと思われた方もいるかもしれませんが、それは当たり前のことで、だからこその『<em>補完</em>』です。プロジェクトで関わるスタッフとコミュニケーションを円滑に取り、かつお互い価値観や考え方、技術に関することまでを積極的に共有することで、お互いが苦手とする部分を補え、かつ認識のずれを早期に解消することができます。</p>

<p>とはいえ、現在ほとんどの企業で『<em>作業効率化のための分業</em>』が取り入れられています。分業すること自体は良いのですが、そのあり方というのは企業によってまちまちで、序盤からプロジェクトメンバー全員でブレストなどを行うところもあれば、設計はディレクター、実装はデザイナーという具合に完全分業しているところもあります。個人的に、後者のやり方はナンセンスだと思っています。なぜなら、最初に述べた通り、Web制作者は職域が広く、他の職種と深く関わっているためです。</p>

<p>運用など、大量生産が必要になる業務においては効率的だと思いますが、1から作る性質の案件に効率を求めすぎても良い結果は生まれないでしょう。転職活動をするにあたり、色々な企業のホームページを拝見しますが、やはり一番重要視しているのはポートフォリオ(ホームページ含)です。Webサイトというモノがユーザエクスペリエンスを提供するメディアである以上、どのようなインタラクションがなされていて、そこにエモーショナルなものがあるか、何をどのように伝えようとしているのか、そしてそれが『<em>伝わるものであるか</em>』という観点から、どのような環境でどのような人達が作っているのかを推測することができます。</p>

<p>食べ物であれば噛み締めて確かにおいしいと判断するように、自己満足であっても、それは自分の動機として十分なものになるのではないでしょうか。少し話が反れてしまいましたが、一つの概念や手法に捕らわれることなく、最適なユーザーエクスペリエンスを導き出すためにはノリシロを持つということが重要になります。そして、それは作品に大きく影響するということだけ覚えておきましょう。</p>

<h3>継続する</h3>
<p>継続力があるというのは、それだけで十分な武器になり得ます。特にWebという分野はまだ歴史が浅く、新しい考え方や技術が次から次へと出てくる流動的な業界なので『<em>普段から何かを学ぼうとしているか</em>』という部分は重視されることが多いようです。プロダクト業界などでは面接の前に課題をこなすのが当たり前のようですが、Web業界では型にはめられるような判断基準が確立していないため、実績に加えてブログなどのプラスαをアピールできると良いでしょう。</p>

<p>ただ、アピール材料として有効というのは二次的なメリットであって、Web業界で生き残るためには継続力そのものが必須だと考えています。デザイン一つとっても毎年トレンドが変わりますし、フロントエンドにおいては過渡期ともいえる重要な時期に差し掛かっています。そうした時代の変化に合わせて最適なユーザーエクスペリエンスを提供していくには、常に時代のトレンドを把握しておく必要があるので、自分なりにアウトプットする機会を設けるのはとても有意義なことだと思います。</p>

<p>また、Web業界は実力主義であるため、常に同業者＝ライバルという構図があります。認められれば仕事を任されますし、そうでなければずっと泥臭い作業を任されたりもします。そういうところで差をつけるのはやはり継続力に伴う、忍耐力だと思います。物事を継続するにはかなりの忍耐が必要になるので、継続力がある人は大体忍耐力も備えています。例え認められずに泥臭い作業ばかり任されても、そこで腐ってはいけません。<strong>何故ならそれを任されたのにはそれ相応の理由があるはずですから、まずはそれを受け入れて、誰よりもその仕事を完璧にこなすこと</strong>です。三流と言われようとも、全ては『<em>誰にも負けない三流</em>』になってからです。そうすれば誰もあなたを放ってはおかないでしょう。</p>

<h3>仕事を楽しむ</h3>
<p>得意を見つけるにしても、ノリシロを持つにしても、継続するにしても、やはり楽しんでいるかどうか、それを見出そうとしているかというのはモチベーションを保つ上でも重要なことです。Webサイトの提供価値であるコンセプトを決めるのと同じで、自分が誰のために、何のために仕事をしているのかが明確であれば、『<em>どうするべきか？</em>』という行動力の根源になるものが見えてきます。将来好きな仕事をするために頑張るのでもいいですし、好きな仕事を探すことに頑張るのでも良いですが、とにかく自分が楽しいと思える仕事、環境を見つけることは素晴らしいことだと思うのです。</p>

<p>何だか精神論的な話になってしまいましたが、やはり仕事は人生の大きな割合を占めるわけですから、楽しいに越したことはありません。これはあくまで個人的な感想ですが、いわゆる公務員の方々と比べると我々はプライベートよりも仕事に対して価値を求めてる職種だと思うのです。もっと言うと、仕事を充実させることでプライベートも楽しくなると、そう無意識的に信じている方が多い気がします。少なくとも私はそう信じています。<strong>理想はあるけど、現実そう甘くないよというのは誰もが言いますが、何か重要な決断をする時には、自分のことを信じ続けるほかない</strong>のです。本当にこの仕事が好きなのか？自分がしたいことは何だろう？と自問自答して、正直な気持ちを受け止めてください。後で後悔することが一番悲しいことです。</p>

<p>最後に、「<a href="http://blogs.itmedia.co.jp/assioma/2010/04/post-4968.html" target="_blank">奇妙な国日本で、これから社会人になる人達へ</a>」という記事で、スティーブ・ジョブスが祝賀式で卒業生に向けて行ったスピーチの内容が掲載されており、非常に素晴らしい内容だったので引用して締めたいと思います。</p>

<blockquote>
<p>3つ目は、死に関するお話です。</p>

<p>私は17の時、こんな言葉をどこかで読みました。確かこうでした。<br />
「来る日も来る日もこれが人生最後の日と思って生きるとしよう。そうすればいずれ必ず、間違いなくその通りになる日がくるだろう」。</p>

<p>それは私に強烈な印象を与える言葉でした。そしてそれから現在に至るまで33年間、私は毎朝鏡を見て自分にこう問い掛けています、「もし今日が自分の人生最後の日だとしたら、今日の予定は、本当に私のやりたいことだろうか？」。それに対する答えが"NO"の日が幾日も続くと、そろそろ何かを変える必要があるなと、そう悟ります。</p>

<p>自分が死と隣り合わせにあることを忘れずに思うこと。これは私がこれまで人生を左右する重大な選択を迫られた時には常に、決断を下す最も大きな手掛かりとなってくれました。何故なら、ありとあらゆる物事はほとんど全て...外部からの期待の全て、己のプライドの全て、屈辱や挫折に対する恐怖の全て...こういったものは我々が死んだ瞬間に全て、きれいサッパリ消え去っていく以外ないものだからです。そして後に残されるのは本当に大事なことだけ。自分もいつかは死ぬ。そのことを思い起こせば自分が何か失ってしまうんじゃないかという思考の落とし穴は回避できるし、これは私の知る限り最善の防御策です。</p>

<p>君たちはもう素っ裸なんです。自分の心の赴くまま生きてならない理由など、何一つない。</p>
</blockquote>]]>
        
    </content>
</entry>

<entry>
    <title>第2回コーディングコンテストで入賞しました。</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/04/2.html" />
    <id>tag:shoonm.com,2010://1.47</id>

    <published>2010-04-20T11:58:08Z</published>
    <updated>2010-04-20T12:03:42Z</updated>

    <summary>先日行われたCSS Nite LP, Disk 9「Coder&apos;s Higher...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Diary" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>先日行われた<a href="http://lp9.cssnite.jp/" target="_blank">CSS Nite LP, Disk 9「Coder's Higher」</a>で開催された<a href="http://www.pxgrid.com/2010codingcontest/" target="_blank">第2回コーディングコンテスト</a>で『<em>入賞</em>』という評価をいただきました。優秀賞は逃してしまいましたが、全体的にレベルの高い内容だったということなので個人的には大健闘かなと思っています。</p>

<p><a href="http://cssnite.jp/archives/post_1815.html" target="_blank">第2回コーディングコンテストの結果発表</a></p>

<p>「<a href="http://shoonm.com/2010/03/html5css3.html">HTML5×CSS3の実装で抑えておくべきこと</a>」は当コンテストでの経験に基づいて書いた記事です。結果が出たので公開しようかと思いましたが、6月5日に再演版の<a href="http://lp9.cssnite.jp/reprise.html" target="_blank">CSS Nite LP, Disk 9.2（reprise）</a>が開催され、コーディングコンテスト受賞作の解説もあるということなので詳細はあえて伏せておくことにします。作品は本サイトの方でも間もなく公開されるはずなので、興味のある方はご確認いただければと思います。</p>

<p>反省点としては不要なアニメーションを適用してしまったこと、一部JSをHTMLにべた書きしてしまったこと、もっと丁寧に作るべきだったなど挙げたらキリがありません。受賞された方の解説や審査員の方々のコメントを拝読し、改善点を見つけては「こうすれば良かったのか‥」と少し悔しい気分になる反面、次回は必ず最優秀を狙ってやろうという野望も芽生えています。また、中には私(Shoon_Miyamoto)の作品を高く評価して下さっている方々もおり、とても光栄に思います。</p>

<dl>
<dt><a href="http://www.cybergarden.net/" target="_blank">サイバーガーデン</a></dt>
<dd><a href="http://www.cybergarden.net/blog/2010/04/coding-contest-2nd-end.html" target="_blank">第2回 コーディングコンテスト、個人的な総評</a></dd>
<dt><a href="http://www.escafrace.co.jp/blog/" target="_blank">エスカフラーチェブログ</a></dt>
<dd><a href="http://www.escafrace.co.jp/blog/10/04/20/1521" target="_blank">CSS Nite LP9 &amp; 第2回コーディングコンテストレポート</a></dd>
</dl>

<p>頑張れば報われるということを身を持って体験できたとても素晴らしい機会になりました。<br />関係者の方々、参加者の方々、本当にお疲れ様でした！！</p>]]>
        
    </content>
</entry>

<entry>
    <title>HTML5の現実的な実装案を考えてみた。</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/04/html5css3-1.html" />
    <id>tag:shoonm.com,2010://1.46</id>

    <published>2010-04-18T18:06:59Z</published>
    <updated>2010-04-18T18:22:39Z</updated>

    <summary>最低限のアクセシビリティを確保し、高水準ブラウザのパフォーマンスを最大限に発揮さ...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="CSS" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Html" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>最低限のアクセシビリティを確保し、高水準ブラウザのパフォーマンスを最大限に発揮させようという『<em>プログレッシブエンハンスメント</em>』という考え方があります。私はこれについて、IEなどの低水準ブラウザでは最低限の見栄えが確保されていれば良いだろうと述べましたが、現実的にそうした考え方を浸透させるのは困難であり、それこそ「<em>単なる理想論</em>」で終わってしまいます。そこで、今一度「<em>現実的な実装案</em>」について考えてみたいと思います。</p>

<h3>誰にとっても重要なこと</h3>

<p>「<em>どのような人にどのようなことをどのように伝えるか</em>」というユーザエクスペリエンスに基づいて『<em>表側のコンテンツ</em>』は作られます。それは私たちWeb制作者にとっても、クライアントにとっても大変重要なことであり、それが明確でなければWebサイトを作る意味すらないと思います。しかし、人間が十人十色であるように、専門分野が違うもの同士では考え方の違いや齟齬などがどうしても生じてしまいます。こちら側のエゴを相手に押し付けるのも、相手の要望を鵜呑みにするのもあまりスマートとはいえません。現時点で理想が叶わないのなら、実情を把握し、妥協点を見つけることから始めましょう。</p>

<h3>私たちにとって重要なこと</h3>

<p>プログレッシブエンハンスメントといえば「<em>新しい技術を最大限に生かす</em>」という側面が注目されがちですが、「<em>コンテンツそのものに重きを置き、Web本来の能力を最大限に生かす</em>」という側面も持ち合わせています。Webの世界はグーグルボットに代表されるクローラーというプログラムが、Web上にある文書や画像などの情報を周期的に取得し、データベース化、インデックス化することで成り立っています。要するに彼らはコンテンツだけを求めています。</p>

<p>HTML5では、section、nav、aside、header、footerなど、セマンティックなタグが追加され、より論理的なマークアップが可能になります。これらのタグを利用することで、単純に構造が分かりやすくなるという表面的なメリットだけではなく、クローラーが文書の内容をより正確に収集できるようになり、検索の精度が格段に向上するという恩恵を受けられます。コンピュータにやさしいマークアップは最終的に人間にとってもやさしいものになります。</p>

<p>また、駅に設置されているエレベーターが高齢者や車椅子を利用されている方々だけではなく健常者にとっても便利なものであるように、多様な環境で利用されるWebという世界では、環境に依存しないアクセシブルなコンテンツが求められています。Webサイト上で、情報を発信、普及、収集、要求したりするのには、コンテンツというレベルでの情報提供は必須なのです。</p>

<p>このように、HTML5というテクノロジーを活用してマークアップの精度を高め、アクセシブルなものにするといった『<em>裏側のコンテンツ</em>』が最も重要であると私は考えています。それらを導入することで、すぐに変革がもたらされるわけではありませんが、将来的にWebという媒体が最大限に力を発揮するためのいわば投資のようなものです。皆さんがどうお考えになるのかがとても知りたいのですが、ここでは<strong>HTML5を活用することを最優先事項として</strong>話を進めたいと思います。</p>

<h3>一企業にとって重要なこと</h3>

<p>TML5やJavaScriptなどの標準技術に基づいて開発されたアプリケーションは、あらゆるデバイスで互換性を持ち、クロスプラットフォームの基盤を作る重要な鍵となります。これが実現するのは随分先のことになるとは思いますが、一部の企業にとっては今すぐにでも取り組むべき重要な課題だと思います。それとは別に、多くの企業では直接収益に影響がでるSEO/SEM、Webパフォーマンスの方に力を入れているように思います。SEO/SEMに関しては、具体的にどのような対応しているのかは分からないのですが(すいません‥)、WebパフォーマンスについてはGoogleが検索ランキングアルゴリズムにサイト応答速度を取り入れるという発表があったこともあり、今後はより専門的な分野として発展していきそうです。</p>

<p>クロスブラウザに関しては重要視しているというよりも、IE6の対応を行うのが当たり前という認識なのだと思いますし、現実問題としてIE6を切り捨てるのは難しい状況にあります。シェアが下がり続けそのまま消えてゆくと思われたIE6ですが、聞いた話によると、ある一定の状態を維持し、それがまだ無視は出来ないシェアを占めているということなのです。単純にIE6以外のブラウザを使うことができない、何らかのシステムにIE6のエンジンを採用している、IE6を拘って使用しているという強者もいるかもしれませんが、とにかくそのような低水準のブラウザでも「<em>高水準ブラウザと同等の見栄えを確保する</em>」という需要はまだまだ根強く残っているのです。</p>

<h3>依存する技術とアクセシビリティサポーテッド</h3>

<p>では、実際にHTML5を活用するためには、どのようなことに留意しなければならないのでしょうか。まず、IE6ではHTML5で追加された新しい要素を認識しないため、レンダリングが行われずスタイルも適用されません。これを解決するためにはRemy Sharp氏が公開した『<em><a href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">html5.js</a></em>』というライブラリを使用します(適用方法などは「<em><a href="http://shoonm.com/2010/03/html5css3.html">HTML5×CSS3の実装で抑えておくべきこと</a></em>」へ)。つまり、IE6の環境で見栄えを確保すること即ち、JSに依存するということになります。</p>

<p>2010年に改定されたJIS規格では、『<em>依存しているウェブコンテンツ技術</em>』という章が明示化されました。簡単に言えば、利用者が(JSやFLASHなど)特定の技術を有効にしていることを前提にして制作をしてもよいというものです。では、何を基準に依存する、しないを決めるのでしょうか。そこで同時に明示化された『<em>アクセシビリティ・サポーテッド</em>』という概念があります。</p>

<h4>【アクセシビリティ・サポーテッドを満たす条件】</h4>

<ul>
<li>WCAG2.0やJIS X8341-3に適合していること</li>
<li>実装技術、ユーザーエージェント、支援技術の折り合いをつける</li>
<li>全方位的なアクセシビリティを確保する</li>
</ul>

<p>第一に規格で定められた要件を満たす必要があります。ただし、規格には適合レベルというものがあり、最低でもレベルA、可能であればレベルAA、余裕があるならレベルAAAというくらいの感覚で良いと思います。この時点で、JSが無効の場合でもコンテンツが問題なく取得できるように配慮する必要はありますが、基本的に適切なマークアップがなされていればCSSが無効の状態でも正しくカスケードされるはずです。</p>

<p>第二にHTMLやJSなどの『<em>コンテンツ側の実装技術</em>』と、ブラウザなどの『<em>ユーザーエージェント</em>』、音声ブラウザなどの『<em>支援技術</em>』とを鑑みて、依存するかしないかを検討する必要があります。なぜこのような過程が必要なのかというと、規格に適合していても、要件によっては相応しくないケースがあるからです。</p>

<p>例えばIE6での閲覧環境を第一優先にする場合や、障がい者や高齢者の訪問が想定される場合は「<em>依存しない</em>」として従来どおりの方法で実装するべきです。前者はイントラネットを制作する場合などで、クライアント側がIE6をメインに使用している場合、後者は自治体のサイトなどで、スクリーンリーダーや音声ブラウザの利用が想定される場合などが挙げられます。もちろんそれらの支援技術がHTML5の新要素を正確に読み上げられるように改善されれば『<em>依存する</em>』と決定することができます。</p>

<p>第三はそれらの折り合いがついて初めてアクセシブルなコンテンツを提供することができるということです。この「<em>折り合いをつける</em>」という部分は非常に難しいところで、作り手である私たち制作者側とユーザーエージェント、支援技術のベンダー側が歩み寄って意識を共有していく必要があると思います。</p>

<h3>CSS2.0でクロスブラウザを実現</h3>

<p>アクセシビリティ・サポーテッドを満たし『<em>依存する</em>』と決まれば、JSを利用してIE6でも新要素を認識させることができ、スタイルの適用も可能になります。しかし、CSS3には当然対応していないため、『<em><a href="http://code.google.com/p/ie7-js/" target="_blank">IE9.js</a></em>』などのライブラリ駆使しても最低限の見栄えしか確保することが出来ません。上でも述べた通り、現時点ではクロスブラウザの需要が高いということもあり、ここを妥協点とさせていただきます。</p>

<p>私たちが最重要事項としているのはコンテンツの充実であり、進化であって、見栄えに関しては従来通りの方法で実装を行うのが得策だと考えます。妥協点というよりも、<strong>あらゆる選択肢の中から最適だと思われる方法を選択しているに過ぎず、時代の変化に合わせて柔軟に対応していくべきことである</strong>と考えています。</p>

<p>『<em><a href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">html5.js</a></em>』も日々進化しているようで、最近バージョンアップされたものでは、プリントにも対応しているとのことです。</p>

<h3>高水準ブラウザへの対応</h3>

<p>CSS3がお預けになり(´・ω・｀)ｼｮﾎﾞﾝﾇ となってしまった方々、ご安心ください。プログレッシブエンハンスメントの考え方に則るなら、今までの経緯は最低限のアクセシビリティを確保していたに過ぎません。CSS2.0で従来通りのコーディングを行う以上、CSS3.0のプロパティをフルに活用するのは難しいまでも、高水準ブラウザ向けに施せることはたくさんあるはずです。<p>

<p>モバイル版Safariしか選択肢がないiPhoneでは、事実上HTML5とCSS3が標準プラットフォームになっているわけなので、それ専用のCSSを用意するのも良いかもしれません。時間やコスト的に余裕がないのなら、ちょっとしたスパイスを加える程度でも良いですが、とにかくCSS3がまるで活用できないということはありません。</p>

<p>あくまで最後の楽しみにとっておく程度にはなってしまいますが、そう遠くない未来、それこそIE9のシェアがIE8を抜く頃には時代は変わっているでしょう。</p>

<h3>最後に</h3>

<p>ここまできたらお気づきの方もいらっしゃるかと思いますが、見栄えに関しては従来通りの方法で行うというだけで「<em>最低限のアクセシビリティを確保し、高水準ブラウザのパフォーマンスを最大限に発揮させよう</em>」という『<em>プログレッシブエンハンスメント</em>』の考え方にはちゃんと則っています。</p>

<p>私の知識量ではこの程度のことしか思いつかないのですが、もっと良い方法があるという方がいらっしゃればどうぞご教授ください。ご意見なども大募集です。</p>]]>
        
    </content>
</entry>

<entry>
    <title>HTML5×CSS3の実装で抑えておくべきこと</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/03/html5css3.html" />
    <id>tag:shoonm.com,2010://1.45</id>

    <published>2010-03-31T14:20:23Z</published>
    <updated>2010-03-31T14:40:37Z</updated>

    <summary>各々のブラウザがドラフトの仕様を実装している段階とはいえ、既にほとんどの機能が実...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="CSS" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Html" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>各々のブラウザがドラフトの仕様を実装している段階とはいえ、既にほとんどの機能が実装できる状態にあります。動向が注目されていたIE9もHTML5のサポートを正式に表明しているということですから、基盤は着々と整いつつあるようです。今回はHTML5でのマークアップ、CSS3でのコーディングを実装するにあたって、何に留意すれば良いのか、現状ではどのような対処をすれば良いのかというところに焦点を当ててみます。</p>

<h3>Progressive Enhancement</h3>
<p>今までは高水準のブラウザで表示確認を行い、下位ブラウザやデバイスの対応を個別に行うというやり方が主流でしたが、今後は最低限のアクセシビリティを確保した上で、高水準のブラウザ対応を行うという『Progressive Enhancement』の考え方に則って制作する必要があります。現状では、ブラウザによって対応状況が異なるため、全ての環境で新機能を活用することは難しい状況ですが、2010年の改訂版JISによって次世代Webの実現に向けてまた一歩進むことが出来そうです。</p>

<h3>依存する技術</h3>
<p>現状では、「最低限の見栄えを確保するということ」即ち、新しく追加されたセマンティックな要素が使用できず(低水準のブラウザでは新要素を認識しないため)、結局のところ「現実的な妥協案」にせざる終えなくなります。そこで私が目をつけたのが改訂版JISで明示された『依存しているウェブコンテンツ技術』という章です。</p>

<p>「<a href="http://www.jsa.or.jp/stdz/instac/commitee-acc/WG2/review2009/ITBF_Web_review.html" target="_blank">JIS X 8341-3 改正原案（2009年1月公開レビュー版）</a>」</p>

<p>簡単に言えば、利用者が(JSやFLASHなど)特定の技術を有効にしていることを前提にして制作をしてもよいというものです。ただし「依存している」とするには『アクセシビリティ・サポーテッド』を満たしている必要があります。</p>

<h3>アクセシビリティサポーテッド</h3>
<p>アクセシビリティ・サポーテッドとは、作成したコンテンツが標準仕様に沿っていて、利用するユーザーがアクセシブルに利用できるかということを指します。これは単にJISに適合していれば良いという話ではなく、コンテンツ側の実装技術とユーザーエージェント/支援技術側の折り合いをつけるという部分が強調されています。</p>

<p>article要素やheader要素などを使用してもIE6ではレンダリングされないため、スタイルを適用することができません。そうしたHTML5の新しい要素やJavaScript(以下JS)などの "コンテンツ側の実装技術" と、ブラウザなどの "ユーザーエージェント" 、音声ブラウザなどの "支援技術" とを鑑みて、依存するかしないかを検討する必要があります。コンテンツを重視するのであれば『依存する』として、JSを有効にしていることを前提に下位ブラウザの見栄えや動作を確保することも可能になります。</p>

<h3>現実的な実装案</h3>
<p>ここまでは今まで考えてきたことのおさらいでしたが、では実際に使えるJSライブラリが存在するのか、CSS3はどの程度まで使用可能なのか等について、私が得た経験から紹介してみます。</p>

<h4>HTML5でのマークアップ</h4>
<p>アクセシビリティサポーテッドを満たした上で『依存する』とし、JSの使用を前提にするのであれば、DOM ScriptingによってIE6,7でもHTML5の新要素を扱えるようにすることができます。有名なのはRemy Sharp氏が公開した『<a href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">html5.js</a>』というライブラリです。実装方法は、以下のようにIE向けに設定するだけで済みます。</p>

<pre><code>
&lt;!--[if lte IE 8]&gt;
&lt;script src="./js/html5.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</code></pre>

<p>条件分岐の意味は「利用しているIEがバージョン8.0以下のとき」となります。IE9ではHTML5が実装されるということなので、含める必要はないでしょう(皮肉)。</p>

<h4>CSS3でのコーディング</h4>
<p>こちらも同様、JSの使用を前提にするのであれば対応方法はあります。以前「<a href="http://shoonm.com/2010/02/web-7.html">次世代Web 7つのポイント</a>」で紹介させていただいたCSS3の擬似セレクタに対応するライブラリ『<a href="http://www.keithclark.co.uk/labs/ie-css3/" target="_blank">ie-css3.js</a>』は実際試してみるとHTML5.jsと競合してしまうのか機能しなかったので(試用せずに紹介してしまい申し訳ありません)、変わりに『ie9.js』というライブラリを紹介させていただきます。</p>

<p>2年ほど前に、Internet Explorerの動作をW3C標準仕様に準拠させる『ie7.js』というライブラリが公開されましたが、それの最新版が『<a href="http://code.google.com/p/ie7-js/" target="_blank">ie9.js</a>』ということになります。IE5.5からIE6までのHTML/CSSの解釈を調整し、IE7との互換性を確保してくれる『ie7.js』と同様、『ie9.js』はIE5.5からIE8までの互換性を確保してくれるという強力な機能を備えています。ざっと機能を列挙すると、以下のようになります。</p>

<ul>
<li>擬似クラス対応</li>
<li>属性セレクタ対応</li>
<li>透過PNG対応</li>
<li>position:fixed対応</li>
<li>margin:0 auto;対応</li>
<li>max-height,width対応</li>
<li>min-height,width対応></li>
<li>IE5/6のバグを修正></li>
</ul>

<p>実際どうだったかということについてですが、十分使えるというのが個人的な感想です。『ie7.js』が公開されたときは、話題になっているほど万能ではなく、JSを無効にしている場合などが懸念され現場で使用されることは先ずありませんでした。しかし『プログレッシブエンハンスメント』の最低限のアクセシビリティを確保するという考え方に則り、『アクセシビリティサポーテッド』を満たし『依存する』とするのなら問題ありません。高水準のブラウザと同じ見栄えというわけにはいきませんが、最低限の見栄えを確保するのには十分貢献してくれます。実装はhtml5.jsと同様、以下のように設定します。</p>

<pre><code>
&lt;!--[if lte IE 8]&gt;
&lt;script src="./js/ie9.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</code></pre>

<h3>ブラウザ対応</h3>
<p>ライブラリによって最低限の見栄えを確保できるとはいえ、HTML5、CSS3の新機能をフルに活用できるかというと現時点ではそうはいきません。要素をアニメーションさせるというのは高水準向けの対応なので論外ですが、要素を横並びにし、高さを調整してくれるboxプロパティや、複雑なグラデーションを画像なしに表現できるgradientプロパティなどが機能しないとレイアウトや見栄えに大きな影響を与えてしまいます。</p>

<p>これについては不本意ながらブラウザ対応という形で対処するしか方法はありません。例えばカラムレイアウトについては、以下のようにie向けのCSSを作成しfloatプロパティを適用する必要があります。</p>

<pre><code>
&lt;!--[if lte IE 8]&gt;
&lt;link href="./css/ie.css" rel="stylesheet" media="screen,all" /&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</code></pre>

<p>既存のCSS</p>
<pre><code>
body #sampleArea div{
	display:-webkit-box;
	display:-moz-box;
}
</code></pre>

<p>IE用のCSS</p>
<pre><code>
body #sampleArea div{
	float:left;
}
</code></pre>

<p>また、グラデーションについては近似する色をIE向けに指定します。</p>

<pre><code>
body{
background-color:#00abeb; /* IE向け */
background:-moz-linear-gradient(top, #00abeb, #fff); /* FireFox向け */
background:-webkit-gradient(linear, center top, center bottom, from(#00abeb), to(#fff)); /* Safari向け */
}
</code></pre>

<p>これだけの対応だけ忘れなければ、十分な見栄えを確保することが出来ます。今回はちゃんと試したので間違いありません^^;。もしかしたら近い将来CSS3のプロパティにも対応したライブラリが登場するかもしれませんが、その時はこうした対応も不要になりますね。念のため確認したブラウザは以下になります。</p>

<ul>
<li>FireFox 3.6</li>
<li>FireFox 3.x</li>
<li>Safari 4</li>
<li>Google Chrome</li>
<li>Opera 10.5</li>
<li>IE6</li>
<li>IE7</li>
<li>IE8</li>
</ul>

<h3>最後に</h3>
<p>Google Chromeを代表する新時代のモダンブラウザ、既存ブラウザのバージョンアップ、そしてモバイルコンテンツの流行、ネットブックの普及、そしてiPhoneを始めとするスマートフォンの出現など、ここ2年の間に状況は一変しました。<strong>そうした時代の流れに合わせて新しい考え方や技術を把握し、あらゆる選択肢の中から最適と思われるプランを最初に実行していくことが次世代Webを引っ張っていく者の役割なのではないか</strong>と考えています。最も私などはペーペー中のぺーぺーですが、今回そうした機会を与えて下さった方々にはとても感謝しています。私も少しずつ精進ていきます。</p>]]>
        
    </content>
</entry>

<entry>
    <title>グラデーションの魅力</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/03/post-27.html" />
    <id>tag:shoonm.com,2010://1.44</id>

    <published>2010-03-29T15:11:52Z</published>
    <updated>2010-03-29T15:28:19Z</updated>

    <summary>僕はデザイナー駆け出しで、大した実績もありませんが「効率的にデザイン力を身につけ...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Design" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>僕はデザイナー駆け出しで、大した実績もありませんが「<a href="http://shoonm.com/2009/11/post-20.html">効率的にデザイン力を身につける方法</a>」で書いた模写という勉強方法を続けたおかげで、何がそのデザインを美しくしているのかを感覚的に見極めることは出来るようになりました。最も、その根拠については自分の感性を信じるしかないのだけど。今日はグラデーションに焦点を当てていくつかのサイトを紹介してみようと思います。</p>

<p>グラデーションは、デザインを美しく見せるためのテクニックとして僕が非常に重要だと思うテクニックの一つです。Webデザインでは必ずといって良いほど使われていますが、その殆どがその魅力を十分に発揮していないように思います。水平或いは垂直にかけるだけでも印象派ガラリと変わりますが、もう少し工夫してみるとグンとデザインが引き締まり上に、より豊かな表現が可能になります。理屈はさておき、一見は百件にしかずということでいくつか事例をば。</p>


<a href="http://www.digdeepfitness.com/" target="_blank"><img alt="im_grade01.png" src="http://shoonm.com/im_grade01.png" width="600" height="433" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
<p>よくある感じのグラデーション。単調でどこか物足りない。</p>

<a href="http://timsilva.deviantart.com/art/Luscious-149239209" target="_blank"><img alt="im_grade02.png" src="http://shoonm.com/im_grade02.png" width="600" height="475" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
<p>コンテンツ部分に纏わりつくかのようにまばらににかけたグラデーション。一気にリッチ感が増す。</p>

<a href="http://www.newism.com.au/" target="_blank"><img alt="im_grade03.png" src="http://shoonm.com/im_grade03.png" width="600" height="434" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
<p>他にも色で魅せたり。</p>

<a href="http://envato.com/" target="_blank"><img alt="im_grade04.png" src="http://shoonm.com/im_grade04.png" width="600" height="416" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
<p>スパイスを加えたり。</p>

<a href="http://miko434.deviantart.com/art/Angel-146560059" target="_blank"><img alt="im_grade05.png" src="http://shoonm.com/im_grade05.png" width="600" height="533" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>
<p>湖を表現したり。</p>

<p>要するに何が言いたいかというと、カッコいいデザイン、美しいデザインていうのはイラストや物凄いグラフィックがあれば成り立つということではなくて、こうした誰もが当たり前に使うテクニックで実は差がついてるんだよということです。僕自身、これらの事例を眺めていて、グラデーション一つとっても、これだけ印象が変わるということを、改めて実感している次第です。複雑でトリッキーなデザインであれ、シンプルなデザインであれ、美しいと思わせるための本質的な部分は同じということでしょうか。次回はまた別の要素についてご紹介(という名のメモ)していきたいと思います。</p>]]>
        
    </content>
</entry>

<entry>
    <title>HTML5 下位ブラウザへの対応</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/03/html5.html" />
    <id>tag:shoonm.com,2010://1.43</id>

    <published>2010-03-02T07:14:10Z</published>
    <updated>2010-03-02T07:18:28Z</updated>

    <summary>HTML5でマークアップをする機会があったので、まず新しく追加された要素を「HT...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="CSS" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Html" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>HTML5でマークアップをする機会があったので、まず新しく追加された要素を「<a href="http://www.html5.jp/" target="_blank">HTML5.JP</a>」で調べ、次に「<a href="http://html5gallery.com/" target="_blank">HTML5 Gallery</a>」というサイトでどのように実装されているのかを確認しました。その中でIE6を代表する下位ブラウザへの対応を行っているサイトが多く見受けられたので自分の解釈も含めつつアウトプットしてみます。</p>

<h3>ライブラリ</h3>
<p>前回「<a href="http://ie6funeral.com/" target="_blank">次世代Web 7つのポイント</a>」という記事で述べましたが、いくら「<a href="http://shoonm.com/2010/02/web-7.html" target="_blank">IE6の葬式</a>」が行われたとはいえ、(現段階では)最低限の見栄えは確保する必要があります。HTML5の実装を進めているというIE9の実態は謎に包まれており、IE6～IE8は言わずもがな対応していません。このような状況化で、最低限の見栄えを確保するということはHTML5で追加されたセマンティックな要素が使用できず、結局のところ現実的な妥協案にせざる終えなくなります。そこで私が目をつけたのが改訂版JISで明示された『<em>依存しているウェブコンテンツ技術</em>』という章です。簡単に言えば、利用者が(JSやFLASHなど)特定の技術を有効にしていることを前提にして制作をしてもよいというものです。ただし「依存している」とするには『<em>アクセシビリティ・サポーテッド</em>』を満たしている必要があります。</p>

<p>アクセシビリティ・サポーテッドとは、作成したコンテンツが標準仕様に沿っていて、利用するユーザーがアクセシブルに利用できるかということを指します。これは単にJISに適合していれば良いという話ではなく、コンテンツ側の実装技術とユーザーエージェント/支援技術側の折り合いをつけるという部分が強調されています。</p>

<blockquote>
<p>技術をアクセシビリティ・サポーテッドな方法で用いるというのは、支援技術（AT）および OS、ブラウザ、その他のユーザエージェントのアクセシビリティ機能と連携するということを意味する。技術は、アクセシビリティ・サポーテッドな方法で用いられている場合のみ、WCAG 2.0 の達成基準を満たすために依存することが可能である。ただし、何らかの達成基準を満たすために用いられていない（つまり、同じ情報あるいは機能が、アクセシビリティ・サポーテッドな他の方法でも利用可能である）かぎり、その技術をアクセシビリティ・サポーテッドではない（支援技術などと連携しない）方法で用いることができる。</p>
<p>ウェブコンテンツ・アクセシビリティ・ガイドライン (WCAG) 2.0</p>
</blockquote>

<p>現状では、ブラウザによって対応状況が異なるため、全ての環境で新機能を活用することは難しい状況です。article要素やheader要素などを使用してもIE6ではレンダリングされないためスタイルを適用することができません。そうしたHTML5の新しい要素やJSなどの"コンテンツ側の実装技術"と、ブラウザなどの"ユーザーエージェント"、音声ブラウザなどの"支援技術"とを鑑みて、依存するかしないかを検討する必要があります。コンテンツを重視するのであれば「依存する」として、JSを有効にしていることを前提に『<em><a href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">HTML5.js</a></em>』を使用し、下位のブラウザの見栄えを保持することができます。逆に下位のブラウザの対応が必須なら「依存しない」として今まで通りの対応をするということになります。</p>

<p>以前「Webという世界ではコンテンツというレベルでの情報提供が必須である」と述べましたが、HTML5で追加されたセマンティクスな要素を使用すれば、情報をより意味のあるものとして定義することができます。それらを導入することで、すぐに変革がもたらされるわけではありませんが、将来的にWebという媒体が最大限に力を発揮するためのいわば投資のようなものです。それに比べてユーザーエージェントや支援技術において問題とされているのは「古いブラウザがあるから導入できない」「新しい要素はまだ対応していない」ということばかりが注目されています。「依存」という考え方が生まれたのも、コンテンツの重要性が認められ、将来的なWebの姿が明確になってきたからだと思いますし、個人的には一歩踏み出していこうよ！という心境です。</p>

<p>やっと本題ですが、IE6～IE8向けの対応として『<em><a href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">HTML5.js</a></em>』を使用しているサイトがほとんどでした。IE9では対応しているものとして扱い、以下のように「IE8以下に適用」という指定をすれば良いと思います。</p>

<pre><code>
&lt;!--[if lte IE 8]&gt;	
&lt;script src="./js/html5.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</code></pre>

<p>またCSS3の擬似セレクタに対応するスクリプト『<em><a href="http://www.keithclark.co.uk/labs/ie-css3/" target="_blank">ie-css3.js</a></em>』を使用しているサイトもありました。これも『<em><a href="http://www.domassistant.com/" target="_blank">DOMAssistant</a></em>』というスクリプトと併用し、先ほどのコメント内に追記するだけです。</p>

<pre><code>
&lt;!--[if lte IE 8]&gt;	
&lt;script src="./js/html5.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="./js/DOMAssistantCompressed.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="./js/ie-css3.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</code></pre>

<h3>メッセージ</h3>
<p>YouTubeがIE6を代表する下位ブラウザのサポートを終了したのは記憶に新しいですが、最近ではGoogleまでもが段階的に終了することを明らかにしています。さらにTwitter上では「<a href="http://twibbon.com/join/IE6-Must-Die" target="_blank">IE6 Must Die</a>」というIE6の撲滅運動が展開されています。サポートを終了することには何の異存もありませんが、使用するユーザーがいる限り、何かしらの対処を施す必要はあると思います。実際に「<a href="http://html5gallery.com/" target="_blank">HTML5 Gallery</a>」で見たサイトのほとんどが下位ブラウザ向けにメッセージを添えています。</p>

<pre><code>
&lt;!--[if lte IE 6]&gt;	
&lt;h2&gt;What the&hellip;&lt;/h2&gt;
&lt;p&gt;Woah&mdash;it looks like you&rsquo;re using Internet Explorer 6 or below. While I salute you for being so staunchly old school, you gotta know that IE6 just can&rsquo;t display modern sites like this properly. You&rsquo;re still most welcome here&mdash;just be aware that this isn&rsquo;t how it&rsquo;s &lt;em&gt;meant&lt;/em&gt; to look.&lt;/p&gt;
&lt;![endif]--&gt;
</code></pre>

<p>日本語では以下のように設定すれば良いと思います。ブラウザのロゴなどを使用して、各ベンダへの直リンクを貼ってあげるとより親切です。</p>

<pre><code>
&lt;!--[if lte IE 6]&gt;	
&lt;p id="caution"&gt;&lt;strong&gt;あなたは旧式ブラウザをご利用中です&lt;/strong&gt;このウェブサイトを快適に閲覧するにはブラウザをアップグレードしてください。&lt;/p&gt;
&lt;![endif]--&gt;
</code></pre>

<h3>サポートしないということ</h3>
<p>@import命令を使用して、NN 4.xやIE5.xにCSSを適用しないといった手法はよく知られていますが、これらの対処は表示崩れを回避するために施されているわけですから、<em>サポートしている</em>といえます。つまり、コンテンツ側の技術が有効で、問題なく機能することが前提で作られているので、機能しない下位ブラウザはもう知りません、特別な対処は施しませんというのが<em>サポートしない</em>ということになります。「<a href="http://html5gallery.com/" target="_blank">HTML5 Gallery</a>」では以下のようにIE6向けのスタイルを適用しているサイトもありましたが、おそらくこうした対処もされなくなっていくのでしょう。</p>

<pre><code>
&lt;!--[if IE 6]&gt;	
&lt;link rel="stylesheet" href="/css/ie6.css" type="text/css" media="screen" /&gt;
&lt;![endif]--&gt;
</code></pre>]]>
        
    </content>
</entry>

<entry>
    <title>次世代Web 7つのポイント</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/02/web-7.html" />
    <id>tag:shoonm.com,2010://1.42</id>

    <published>2010-02-20T09:10:23Z</published>
    <updated>2010-02-22T02:48:34Z</updated>

    <summary>先日、立て続けにセミナーに参加し、改めて今後のWebのあり方について考えさせられ...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>先日、立て続けにセミナーに参加し、改めて今後のWebのあり方について考えさせられました。「<a href="http://shoonm.com/2010/01/web-1.html">これからのWebのあり方について考えてみた。</a>」を書いた時にはまだ知らなかった事実もあるので、要点のみにフォーカスして、もう一度まとめてみます。</p>

<h3>新しい技術への姿勢</h3>
<p>Developers Summit 2010「次世代web標準 html5 最新動向」では、HTML5に関する初歩的な内容から実践的な内容まで、広く深く学べる貴重な時間を過ごせました。とくに矢倉氏が話されていた「勧告が先だからといって諦めるのではなく、実装されている機能を活用していこう」というお話はとても共感できました。私も以前「<a href="http://shoonm.com/2010/01/web-1.html">私たちがWeb世界を作っているということ。</a>」という記事で「ただ普及するのを待っているだけではなく、新しい技術や考え方があるのなら、どんどん取り入れていこう」と述べましたが、やはり今のWebにはそうしたアクティブな姿勢が求められているのだと思います。</p>

<h3>整ってきている条件</h3>
<p>これは単なる理想論なんかではなくて、実際にSafari(モバイル含む)のWebKitエンジンでは、HTML5、CSS3の新機能がほぼ完全に実装されています。つまり、モバイル版Safariしか選択肢がないiPhoneにおいては、事実上HTML5とCSS3が標準プラットフォームになっているということになります。それを踏まえると、iPhoneを代表するスマートフォンの普及、iPadという新基準デバイスの出現、これだけでもかなりのインパクトがあります。</p>

<p>また、「<a href="http://a.deveria.com/caniuse/#options" target="_blank">When can I use...</a>」というサイトで「<a href="http://a.deveria.com/caniuse/#agents=All&eras=All&cats=HTML5,Canvas&statuses=rec,pr,cr,wd,ietf" target="_blank">HTML5の実装状況</a>」や「<a href="http://a.deveria.com/caniuse/#agents=All&eras=All&cats=CSS3&statuses=rec,pr,cr,wd,ietf" target="_blank">CSS3の実装状況</a>」を見て分かる通り、Internet Explorer(以下IE)を覗くモダンブラウザではほとんどの新機能が実装されていることが分かります。Microsoftの次期ブラウザである『IE9』が標準技術に積極的な意向を示していること、IE6のシェアが下がる一方であることを加味すると、新機能を実装するための"条件"が整いつつあることが分かります。</p>

<h3>IE6への対応</h3>
<p>しかし、現実問題としてIE6などの古いブラウザを無視できないというのも事実です。以前「<a href="http://shoonm.com/2010/01/web-2.html">CSSのあり方について考えてみた。</a>」という記事で「ターゲット外のブラウザでも最低限の見栄えを確保する配慮は必要になるでしょう。」と述べましたが、この時はまだ「<a target="_blank" href="http://www.csszengarden.com/?cssfile=062/062.css">Gemination</a>」のように最低限の見栄えは確保し(このサイトの場合は全く異なるデザインを適用していますが)、高水準のブラウザ向けに一部のスタイルを上書きするようなイメージを抱いていました。IE6などの古いブラウザを対象に含める以上、新機能を余すところなく活用するというのは困難と思われるからです。</p>

<p>しかし、先日の「<a href="http://cssnite.jp/archives/post_1765.html" target="_blank">CSS Nite vol.44</a>」で、植木 真氏による「アクセシビリティ」の講演を聴き、もしかしたらすぐにでも動き出せるんじゃないかという可能性を感じました。</p>

<h3>依存する技術、しない技術</h3>
<p>「2004年版 vs 2010年改定版」というテーマで、10つの要点を話されていましたが、JISがどう変わったのかということは基より、全体の構成がどうなっているのかということまで把握することができ、原案と睨めっこしていた私にとしてはとても身になる講演でした。『WCAG 2.0』を踏襲していること、あえて抽象的な達成基準にしていること、達成等級が取り入れられていることなど、JIS改定の詳細については公開されているスライドを音声を合わせてご覧下さい。</p>

<ul>
<li><a href="http://cssnite.jp/ginza/vol44/CSSNiteGinza44-ueki.pdf" target="_blank">スライド</a>（PDF、100ページ、1.9MB）</li>
<li><a href="http://cssnite.jp/podcast/CSSNiteGinza440ueki.mp3" target="_blank">音声</a>（MP3、57:01、54.9MB）</li>
</ul>

<p>「<a href="http://www.jsa.or.jp/stdz/instac/commitee-acc/WG2/review2009/ITBF_Web_review.html" target="_blank">JIS X 8341-3 改正原案（2009年1月公開レビュー版）</a>」も併せてどうぞ。</p>

<p>お話の中で特に印象的だったのは『<em>依存しているウェブコンテンツ技術</em>』という章です。今まではJSやFLASHなどが無効にされている場合の配慮として、代替コンテンツを用意する必要がありました。それは最低限のアクセシビリティ対応として当然のことですが、ここで言いたいのは、特定の技術に依存したコンテンツがNGとされているということです。例えば、JSを使用するのであれば「JSが無効の場合の対応」が必須でした。</p>

<p>しかし改定版JISでは、<strong>利用者がJSやFLASHを有効にしていることを前提にしても良いという内容が追加された</strong>のです。特定の技術が利用できる前提とすることを「依存している」といい、前提としないことを「依存しない」といいます。つまり「依存している」とする場合は、JSなどが有効になっていることを前提にコンテンツを作成してもよいということになります。</p>

<h3>JavaScriptの活用</h3>
<p>現在、先行実装は進んでいるとはいえ、ブラウザによって対応状況がことなるため、全ての環境で新機能を活用するというのは難しい状況にあります。articleやheaderなど、新たに追加された要素を使用しても、IE6で悲惨な表示崩れが起こることは目に見えています。しかし、もし「依存している」としてJSの利用を前提にするのであれば、DOM ScriptingによってIE6,7でもHTML5の新要素を扱えるようにすることが可能になります。有名なのはRemy Sharp氏が公開した「<a href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">html5.js</a>」というライブラリです。</p>

<p>以下のようにIE向けに適用するだけで済みます。</p>

<pre><code>&lt;!--[if IE]&gt;
&lt;script src="html5.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;![endif]--&gt;</code></pre>

<p>つい最近までは、このような後方互換のための対応をしても「JSが無効にされていたら元も子もないだろう」という話になってしまい、結局現実的な妥協案にせざる終えない状況にありました。しかし、改定版JISで新たに追加された「依存」という規定によって、新たな展開が期待できるのではないかと思っています。ただし、それには『<em>アクセシビリティサポーテッド</em>』を満たしていることが大前提となります。</p>

<h3>アクセシビリティサポーテッド</h3>
<p>アクセシビリティサポーテッドとは何ぞやということになりますが、簡単に言えば作成したコンテンツが標準仕様に沿っていて、利用するユーザーがアクセシブルにコンテンツを利用できるのかどうかということです。それには、ブラウザなどのユーザーエージェント、スクリーンリーダーや音声ブラウザなどの支援技術に対して適切なサポートがなされているかということまで含まれます。これについて「<a href="http://website-usability.info/2010/02/entry_100204.html" target="_blank">アクセシビリティ・サポーテッドという考え方｜ウェブユーザビリティ向上を支援するWebsite Usability Info</a>」で非常に分かりやすい説明がされているので引用します。</p>

<blockquote>
<ol>
<li>Webコンテンツ自体が、標準仕様（WCAG 2.0 や JIS X8341-3）で定められたアクセシビリティに優れた方法で制作されていて、</li>
<li>ユーザーエージェント（Webブラウザなど）や支援技術（スクリーンリーダーや音声ブラウザなど）がそのアクセシブルな制作物（コンテンツ）を適切に理解、解釈、出力できて、</ul>
<li>ユーザーがWebコンテンツをアクセシブルに利用することができる。</li>
</ol>

<p>つまり、コンテンツ側の実装技術と、ユーザーエージェント/支援技術側の対応状況の折り合いがついて、初めてアクセシビリティが実現する、という考え方です。</p>
</blockquote>

<p>植木氏も話しておられましたが、JISというのはあくまでガイドラインであって、それに適合していることがアクセシブルであるということではありません。標準仕様に適合しても、ユーザーエジェントや支援技術によって差異が生まれてしまうからです。<strong>JSなどの実装技術に依存することなく、またIE6などのエージェントなどに縛られることなく、サイトの要件によって、何が必要で、何が不要なのかを臨機応変に対処していくこと</strong>がこれから求められていくのではないでしょうか。ガイドラインは、あくまで迷った時に立ち返るところとして、また世界共通のルールとして認識することが大切だと思います。そしてその考え方というのは『<em>プログレッシブ・エンハンスメント</em>』に通じるところがあります。</p>

<h3>これからはプログレッシブ・エンハンスメント</h3>
<p>以前「<a href="http://shoonm.com/2010/01/progressive-enhancement.html">Progressive Enhancementという考え方</a>」という記事を書きましたが、この考え方がこれからのWebを象徴していると改めて思います。"Progressive"という言葉には「前進する、進展する」という意味があります。前進する為には、まず目的地を決める必要があります。次世代Webの理想像を思い描いてください。そうしたら、そこにたどり着くにはどうしたらいいのかを考えます。今、何をすべきか。私自身はこういうふうに考えて自分の行動に納得しながら日々を過ごしています。このブログだってそうです。なぜなら、目的地が分かってなければ当然たどり着くことはできませんし、適当に決めて効率よく進んだところで、それは間違った目的地に進んでいることになります。</p>

<p>今こそ、次世代のWebへ向かって歩を進める時ではないでしょうか。</p>]]>
        
    </content>
</entry>

<entry>
    <title>ロールオーバー 4つの手法</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/02/-4.html" />
    <id>tag:shoonm.com,2010://1.41</id>

    <published>2010-02-17T01:40:29Z</published>
    <updated>2010-02-17T02:28:58Z</updated>

    <summary>先日、ナビゲーションのロールオーバーについて以下のようなご質問をいただきました。...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Skill" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>先日、ナビゲーションのロールオーバーについて以下のようなご質問をいただきました。</p>

<blockquote>グローバルナビゲーションをJSで制御しているサイトもあれば、CSSの背景で制御しているサイトもあるけど、結局どれがベストなの？</blockquote>

<p>まず、テキストは元より、画像であっても代替テキストを指定すれば『コンテンツ』というレベルで情報は確保できるので、テキストが良いか、画像が良いかということについては個人的にどちらでも良いと思っています。マークアップの観点では、グラフや地図、写真イメージなど、テキストでは補えない性質の情報を提供する場合はimg要素でマークアップするべきだと思いますが、ナビゲーションはあくまでサイト内を遷移するための"機能"であるため、その役割を果たすことが最も重要なのではないかと思います。</p>

<p>また、ナビゲーションにはサイト内を遷移するという役割のほかに、現在位置を把握するという役割も担っているので、ロールオーバーやカレント表示などの機能も備わっていなければなりません。どの手法がベストなのかを検討するには、画像を非表示にするユーザやCSSを無効にするユーザへの配慮がなされているかといった『見栄え』による部分と、JSを無効にしているユーザへの配慮がなされているかといった『ふるまい』の部分を把握した上で考慮する必要があります。では、実際にいくつかの手法を再現しながら検証していきましょう。</p>

<h3>CSSで画像置換を行う</h3>
<p>テキストをtext-indent:-9999pxで飛ばして背景画像を表示させる手法で、しばらくの間主流になっていました。しかし、画像を非表示にした環境下でテキストが表示されなくなるという問題は、モバイルでの閲覧や回線状況、テキストブラウザや音声ブラウザなどの閲覧環境においてアクセシビリティ上、致命的な問題を生じる可能性があります。また、テキストを飛ばす、或いは消して画像に置き換えるという手法上、SEOスパムと判別される可能性があります。画像置換にはメリットも色々とあるのですが、それを上回るデメリットがあるため、現在では使用が控えられている傾向にあるようです。</p>

<div id="sample01">
<ul>
<li><a hrerf="#">サンプル</a></li>
<li><a hrerf="#">サンプル</a></li>
<li><a hrerf="#">サンプル</a></li>
</ul>
</div>

<dl>
<dt>JSをオフにした場合</dt>
<dd>CSSで制御しているため、問題なく機能する</dd>

<dt>画像をオフにした場合</dt>
<dd class="problem">テキストが表示されず、環境によってはナビゲーションとして機能しない</dd>

<dt>CSSをオフにした場合</dt>
<dd>適切にマークアップされていれば最低限のアクセシビリティは確保されるので問題なし</dd>
</dl>

<h3>画像をJSで入れ替える</h3>
<p>img要素で定義されているため、画像を非表示にした環境でも代替テキストが表示されます。これで、画像置換で起こる「テキストが表示されなくなる」という問題は解消されますが、JSを無効にすると今度はロールオーバーが機能しなくなります。よくJSでロールオーバーさせるメリットとして「CSSが無効の環境でも画像が保持される」ということが挙げられているのですが、おそらくCSSを必要としない環境下では画像そのものよりも適切な代替テキストが指定されているかの方が重要なのではないかと思います。その考え方に基づくと、CSSを無効にした環境下でJSによる挙動が本当に必要なのかという疑問も生じます。ロールオーバーが機能しないことは、差したる問題ではないとは思いますが、先に挙げたような"副作用"と天秤にかけて使用を検討する必要があるかもしれません。</p>

<div id="sample02">
<ul>
<li><a hrerf="#"><img src="/mt/mt-static/themes/style-vega/images/unique/sample_01.jpg" width="102" height="53" alt="サンプル" class="rollover" /></a></li>
<li><a hrerf="#"><img src="/mt/mt-static/themes/style-vega/images/unique/sample_01.jpg" width="102" height="53" alt="サンプル" class="rollover" /></a></li>
<li><a hrerf="#"><img src="/mt/mt-static/themes/style-vega/images/unique/sample_01.jpg" width="102" height="53" alt="サンプル" class="rollover" /></a></li>
</ul>
</div>

<dl>
<dt>JSをオフにした場合</dt>
<dd class="problem">JSで制御しているため、ロールオーバーが機能しない</dd>

<dt>画像をオフにした場合</dt>
<dd>代替えテキストが表示されるので、適切なAltが指定されていれば問題なく機能する</dd>

<dt>CSSをオフにした場合</dt>
<dd>適切なAltが指定されていれば最低限のアクセシビリティは確保されるので問題なし</dd>
</dl>

<h3>画像をCSSで入れ替える</h3>
<p>こちらもimg要素で定義を行うのですが、JSは使用せずにCSSだけでロールオーバーを実現しています。概要としては、img要素を囲うブロックにロールオーバー時の背景画像を適用させ、マウスオーバー時に画像を非表示にするというものです。JSを無効にした状態でもロールオーバーが機能し、かつ画像を非表示にした状態でも代替テキストが表示されるので、決定版はこれだ！と言いたいところなのですが、ロールオーバー時に背景画像を指定しているため、画像を非表示にした状態でマウスオーバーすると何も表示されなくなってしまいます。代替テキストが表示されるためサイト内での遷移は問題なく行えると思いますが、マウスオーバー時やカレント時に色が変わるなどといったユーザビリティが確保できないため、ユーザーに無駄なフラストレーションを与えてしまう可能性があります。</p>

<div id="sample03">
<ul>
<li><a hrerf="#"><img src="/mt/mt-static/themes/style-vega/images/unique/sample_01.jpg" width="102" height="53" alt="サンプル" /></a></li>
<li><a hrerf="#"><img src="/mt/mt-static/themes/style-vega/images/unique/sample_01.jpg" width="102" height="53" alt="サンプル" /></a></li>
<li><a hrerf="#"><img src="/mt/mt-static/themes/style-vega/images/unique/sample_01.jpg" width="102" height="53" alt="サンプル" /></a></li>
</ul>
</div>

<dl>
<dt>JSをオフにした場合</dt>
<dd>CSSで制御しているため、問題なく機能する</dd>

<dt>画像をオフにした場合</dt>
<dd class="problem">代替えテキストが表示されるが、ロールオーバーやカレント表示の際にテキストが表示されなくなる</dd>

<dt>CSSをオフにした場合</dt>
<dd>適切なAltが指定されていれば最低限のアクセシビリティは確保されるので問題なし</dd>
</dl>

<h3>新・画像置換</h3>
<p>上記では、画像置換にはメリットを上回るデメリットがあるため、使用を控えるという話でした。しかし、もしそのデメリットが解消されたらどうでしょうか。『DKIR』という手法を使えば、画像が非表示の状態でもテキストが表示され、かつCSSで制御しているため、JSを無効にした状態でもロールオーバーが機能します。デザイン変更などがあった場合、マークアップに手を加えることなく画像の差し替えが行える、『CSS Sprite』を利用してhttpリクエストを減らせるなどといった、画像置換の恩恵のみを受けられることになります。SEOスパムについては、その定義の曖昧さや判断基準が明確でない以上、結論が出せないのでここでは棚上げにします。少なくともDKIRという手法はテキストを飛ばすわけでも、消すわけでもなく、<em>背景画像の背面に隠す</em>という手法であるため、画像置換におけるアクセシビリティの問題は解消できるはずです。しかし、そんなDKIRも万能というわけではなく、要素を重ねるという手法上、背景画像に透過PNGが使用できないという制約があります。</p>

<p>詳しくは<a href="http://css-eblog.com/csstechnique/dkir.html" target="_blank">「これで決まり？な画像置換 - DKIR | CSS-EBLOG」</a>をご覧下さい。</p>

<div id="sample04">
<ul>
<li><a hrerf="#"><span>サンプル</span></a></li>
<li><a hrerf="#"><span>サンプル</span></a></li>
<li><a hrerf="#"><span>サンプル</span></a></li>
</ul>
</div>

<dl>
<dt>JSをオフにした場合</dt>
<dd>CSSで制御しているため、問題なく機能する</dd>

<dt>画像をオフにした場合</dt>
<dd>代替えテキストが表示されるので問題なく機能する</dd>

<dt>CSSをオフにした場合</dt>
<dd>適切にマークアップされていれば最低限のアクセシビリティは確保されるので問題なし</dd>
</dl>

<p>4つの手法を紹介しましたが、どれがベストであるということはあえて明言しません。なぜなら、どれがベストであるかは時と場合によって異なるからです。JSを無効にした場合、画像を非表示にした場合、CSSを無効にした場合について検証したのは、それぞれの手法の長所と短所を明確にするためであって、優劣を決めるためではありません。一つの手法しか知らなければ何を疑うでもなくそれだけを使用し続けることになりますが、他の手法を知っていればそれだけ引き出しが増えることになり、時と場合によって相応しい選択が行えるようになります。</p>

<p>1つだけ個人的な意見を述べるとしたら、ナビゲーションというのは"機能"としての役割を全うしてくれればそれで良いと思います。例えば、一つタグなどを挟まないとその機能が実現できない、というならば躊躇せずに挟むべきだと思います。「spanタグが入ると気持ち悪い」というのはとても分かりますが、そのTPOにおいて何が必要で、何が不要なのかを判断するには、やはり相応の知識が必要になります。これは何にでも言えることだとは思いますが、<strong>あらゆる手法や考え方を"身に付ける"まではいかなくとも、"知っている"だけで全然違います</strong>。一つの手法や考え方に固執するのではなく、広い視野を持って取り組みましょう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Webサイトをつくるコンセプト ～FLASH vs HTMLについて～</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/02/web-flash-vs-html.html" />
    <id>tag:shoonm.com,2010://1.40</id>

    <published>2010-02-08T03:25:30Z</published>
    <updated>2010-02-08T04:09:38Z</updated>

    <summary>「これからのWebのあり方について考えてみた。」で述べたように、今後のWeb世界...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>「<a href="http://shoonm.com/2010/01/web-1.html">これからのWebのあり方について考えてみた。</a>」で述べたように、今後のWeb世界において『<em>コンテンツ</em>』が重要な役割を果たすということに変わりはないのですが、だからといって「FLASHは必要なくなる」とか「全てのコンテンツはHTML5でマークアップしておけばいい」ということにはなりません。最近「HTML5 vs FLASH」のような記事やお話を見聞きするのですが、どちらが生き残るのかという観点そのものに疑問があります。</p>

<p>クロスプラットフォームにおいては、HTML5が独占しているわけではないので、"競争"という捉え方もできます。しかし、すでに次世代プラットフォームとして注目されている『<em>WebKit</em>』は言わずもがなHTML5が基盤になっていますし、『<em>Google Chrome OS</em>』はもちろん、Adobe『<em>AIR</em>』、Microsoft『<em>Silverlight</em>』もHTML5に対応する見通です。つまり、HTMLはFLASHを代表するリッチな技術の対抗勢力になるのではなく、アプリケーションを開発する上での標準技術になるというが正しい認識なのではないかと思います。</p>

<p>FLASHも『<em>Flash for iPhone</em>』というプロジェクトを発表していますが、それは「基盤」と「手段」という意味で全く異なる次元の問題です。それはFLSAHが優れていないと言いたいわけではなく、そもそも白黒つけようとすることが誤りなのではないかと思うのです。ここでWebサイトを作る目的について考えてみてください。「<a href="http://shoonm.com/2010/01/web-3.html">私たちがWeb世界を作っているということ。</a>」で述べましたが、誰もがインターネットを持ち歩く時代、もう一つの"世界"といっても過言ではないWeb世界を、私たちが政治家として執政にあたっています。私たちの役割は、率先して市民の声に耳を傾け、ニーズを汲み取り、執行機関の施策に反映していくことです。</p>

<p>つまり「どのような施策を反映させ、国民を満足させるのか」ということが重要であって、FLASHやHTMLというのは、それに応える為の手段でしかありません。先に述べた通り、HTMLはリアル世界でいう国民保険のようなもの(意思に関わらず、住所を有する者であれば必ず加入しなければならない)になりつつありますが、現時点ではFLASHと同様、一つの手段として然るべき役割を担っているといえるでしょう。どちらかがという狭い視野で捉えるのではなく、それぞれの特性を理解して、また共有し合って『<em>ユーザーエクスペリエンス(以下UX)</em>』を創り出すことが本来の目的ではないでしょうか。</p>

<h3>ユーザーエクスペリエンス</h3>

<p>User Experienceの"Experience"という単語は「経験、体験」という意味合いがあり、直訳すると<strong>ユーザー体験</strong>になります。つまり、ユーザーが製品やサービスなどを利用する際に得られる体験のことをいいます。Donald A. Normanによって提唱されたということもあり『<em>ユーザー中心設計</em>』が基盤になっているUXは、ヒューマンインタフェースやユーザビリティなどよりも広い概念を示すための造語として提唱されました。</p>

<p>どのような違いがあるのかというと、インタフェースにおけるレイアウト設計、色彩計画というのはあくまで"一つの構成要素"であって、それ自体が「体験」を提供しているわけではありません。例えば、ある製品に対してユーザーが形が格好いい、操作が分かりやすいと思っても、それが購買に結び付くかどうかは別の話です。ユーザインタフェースがそうした機能的なものに対してUXは、そもそもその機能がユーザーにとって必要なものであるのかという観点なのです。</p>

<p>大型ショッピングセンターには、カレーを作る為にカレールーや野菜を買いに来る人もいれば、電化製品を買いにくる人など、様々な目的を持ったユーザーが訪れます。カレーの材料を買いに来たユーザーが電化製品を買うということはまず考えられません。仮に電化製品売り場を通りかかる機会があって、いつか欲しいなとは思っても「カレーのついでに買っちゃおう」という人はそうはいないでしょう。かなり無理がある話ですが、もしカレーの材料を買いに来たユーザーに電化製品を買わせたいという目的があるのなら、その場合においてどのような「体験」を与えればユーザーの購買意欲を発起できるのかということを検討する必要があります。</p>

<p>さて、ではカレーの材料を買いにきたユーザーに対して、どのようなインタラクションを提供すれば良いのでしょう。頻繁に訪れている顕在ユーザーであれば迷うことなく目的の商品を見つけることができると思いますが、初めて訪れるユーザーには、何かしらのインタラクションを提供しなければなりません。例えば、普通のスーパーでは商品ごとにカテゴライズがなされており、指標となる目印が設けてあります。その他にもユーザーの購買意欲を発起する為の「体験」として、試食・試飲、医薬品や美容化粧品などのサンプルの提供などが挙げられます。また、ユーザーの性質に関わらず、レジの前に必ずと言ってよいほど置いてあるお菓子や日用品は、誰もが日常的に必要するものばかりが並べられています。</p>

<p>この例でのユーザーインタフェースが、ユーザーを誘導する為の目印や、購買意欲を高める為のサンプル品のことで、UXはユーザーが訪れてから目的を達成するまでの「体験」そのもののことをいいます。どのようなユーザーがいるのか、どのようなニーズがあるのか、何を伝えたいのかなどを把握した上で、どのようなインタラクションを提供すれば満足してもらえるのかという一連のシナリオを組み立てること、上の例でいえばカレーの試食をさせて購買意欲を発起しようなど、「<em>ユーザーが認知する体験のこと</em>」をUXといい、その設計を『<em>ユーザエクスペリエンスデザイン(以下UXD)</em>』といいます。</p>

<h3>ユーザーエクスペリエンスの構成要素</h3>

<p>先ほど冒頭で「HTMLもFLASHもUXを創りだす一つの手段に過ぎない」と述べましたが、UXを構成する要素について解説したいと思います。以下のモデルは「<a href="http://www.amazon.co.jp/IA100-%E2%80%94%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%AA%E3%82%A8%E3%83%B3%E3%82%B9%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E8%A8%AD%E8%A8%88-%E9%95%B7%E8%B0%B7%E5%B7%9D-%E6%95%A6%E5%A3%AB/dp/4861005779" target="_blank">IA100 ユーザーエクスペリエンスデザインのための情報アーキテクチャ設計</a>」で採用されているものを使用しています。Webサイトは「<em>テクノロジー</em>」「<em>ビジュアルコミュニケーション</em>」「<em>情報アーキテクチャ</em>」という3つの組み合わせでコンテンツが企画され、UXDで一連のユーザー体験を組み立てます。</p>

<p style="width:600px; margin:0 auto 15px auto;"><img alt="ux.gif" src="http://shoonm.com/ux.gif" width="600" height="500" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 10px;" />ユーザーエクスペリエンスの構成要素</p>

<h4>【テクノロジー】</h4>

<p>テクノロジーは、PCやモバイルといったデバイスを含む「<em>プラットフォーム</em>」、データベースや会員システムなどの技術を含む「<em>サーバーサイド</em>」、そして文書構造を司るHTMLや見栄えを司るCSS、インタラクションを司るFLASHやJavaScriptといった表現技術を含む「<em>フロントエンド</em>」に分けられます。今までも考察してきた通り、今日のテクノロジーにおける進展には目を見張るものがあり、ユーザーに与える体験をより快適なものにしてくれるでしょう。</p>

<h4>【ビジュアルコミュニケーション】</h4>

<p>ビジュアルコミュニケーションは、サイトの印象や感覚的な表現を司る「<em>アートディレクション</em>」とレイアウト設計や色彩計画などのグラフィカルな表現を司る「<em>グラフィックデザイン</em>」に分けられます。企業ブランドやコンテンツなどを、どのようなモチーフやトーンで伝えるのか、またそれをどのように表現するのかというWebサイトに限らず全ての媒体に必要不可欠な要素です。</p>

<h4>【情報アーキテクチャ】</h4>

<p>ユーザーが情報探索を行う上で、どのように情報を整理すれば、理解しやすく、利用しやすいものになるのだろうか？という複雑な情報を分かりやすく伝えるための技術です。具体的にはサイトストラクチャ、ラベリング、ナビゲーションの設計によって「<em>情報の組織化/構造化</em>」を行います。Webサイトを作るということは、言い換えれば情報をデザインするということであり、いわゆる『IA』と呼ばれる専門家だけが考えれば良いことではなく、Webに携わる全ての人に必要な要素です。</p>

<h3>見つけやすさの重要性</h3>

<p>以下の図はPeter Morville氏が提示した「<em>ユーザーエクスペリエンス・ハニカム</em>」です。UXを性質という観点から見た構成要素で、いくつかの性質を同時に満たすことでユーザーの琴線に触れることできると言われています。どの性質を優先するのか、或はさせないのかということを、ビジネスゴールとコンテクスト、ユーザーニーズと行動、コンテンツの有用な混合という観点から鑑みて、バランスの良いコンテンツ作りを目指します。例えば、高齢者のアクセスが想定されるWebサイトでは「好ましさ」よりも「アクセスしやすい」を優先しようなど、避けられない妥協は無意識にではなく意識的にさせなければなりません。</p>

<p style="width:600px; margin:0 auto 15px auto;"><img alt="ux2.gif" src="http://shoonm.com/ux2.gif" width="600" height="500" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 10px;" />ユーザーエクスペリエンス・ハニカム</p>

<dl>
<dt>役に立つ</dt>
<dd>図的になされなければならないその商品やサービスが本当に役に立つのか、商品知識や専門的知識を深め多くのユーザーに訴えかける</dd>
<dt>好ましい</dt>
<dd>イメージ、アイデンティティー、ブランドが持つ力と価値はバランスを保つことでユーザーの関心を引く</dd>
<dt>アクセスしやすい</dt>
<dd>障害を持つユーザーであってもアクセスできることで、より多くのユーザーにリーチする</dd>
<dt>価値がある</dt>
<dd>利益を上げ、顧客満足を満たす。利害関係者すべてに価値をもたらす</dd>
<dt>信頼できる</dt>
<dd>多くのユーザーに信頼感を与えるデザインである</dd>
<dt>見つけやすい</dt>
<dd>ユーザーが欲する情報を迷う事なく即座に見つけられる構造である信頼できる</dd>
<dt>使いやすい</dt>
<dd>Man-Machine Interfaceの観点からユーザビリティを考慮する</dd>
</dl>

<p>この性質の中でも、数十億の項目が様々な形で分散して集積しているWebにおいて、「<em>ファインダビリティ(見つけやすさ)</em>」は非常に重要です。どのようにしてユーザーの興味を発起するかというインタラクションや、快適な操作性を提供するユーザビリティの重要性は広く認識されていると思いますが、ファインダビリティはあまり注目されていない節があります。これからさらに情報過多が進み、あらゆるデバイスでインターネットが利用され、Web世界が膨張し続けるということを考えれば、ユーザーのニーズとサイト固有の戦略とを結びつけ、双方のバランスを取り、最適なファインダビリティを提供することがどれほど重要なのかが分かると思います。何故なら、分かりやすさも、使いやすさも、好ましさも、全て<strong>見つけられなければ意味をなさない</strong>のです。</p>

<p>そういう意味においてサイトのファインダビリティを高めるということは、『SEO(検索エンジンの最適化)』という分野にまで及びます。一部のSEO業者では姑息な手段を使って検索エンジンを騙す手法を適用していますが、検索エンジンが進化し続ける生き物であるということを忘れているのではないでしょうか。一時的に効果があっても、後で取り返しのつかないことになる可能性があります。本質的にSEOを向上させるにはどうすれば良いのかを考え、今ある資源の中から有益なものを活用するしていくという方が、合理的であるといえます。</p>

<h3>ノリシロを持つということ</h3>

<p>ここまでUXについて述べてきましたが、FLASHやHTMLがUXを創りだす一つの要素でしかないということがご理解いただけたかと思います。私たちがWeb世界を執政するにあたり、一つの概念や手法に捕われてしまっては、物事の本質を見失ってしまいます。何が必要で、何が不要なのかを判断をするには現状を汲まなく把握し、そして把握する為にノリシロを持つ必要があります。「ユーザーエクスペリエンス」で述べた3つの要素では、それぞれのスペシャリストがいるはずです。「テクノロジー」であればマークアップエンジニア、フロントエンドテクノロジスト、フラッシャー、システムエンジニアなど、「ビジュアルコミュニケーション」であればグラフィックデザイナー、アートディレクターなど、「情報アーキテクチャ」ではインフォメーションアーキテクトなどが挙げられます。</p>

<p>もう一度「ユーザーエクスペリエンスの構成要素」の図を見ていただければ分かると思いますが、それぞれの要素は独立して成り立っているわけではなく、それぞれに依存し、また相関があります。つまり、理想的なUXを提供する為には、それぞれのスペシャリストが全体を俯瞰しながらUXDを行う必要があります。例えば、グラフィックデザイナーがパーツを作成する際に、マークアップの知識があればビジュアルと論理構造の相違はなくなるはずです。もう少し噛み砕くと、「資料請求」というボタンを作成するにあたり、論理的意味合いでは重要な意味付けを行っているのにも関わらず、デザイン的な見た目はまるで目立たせていないといった問題は避けられるはずです。また、プロジェクトで進めている場合、スペシャリスト同士のコミュニケーションは不可欠なものであり、それを円滑にさせるにはお互い価値観や考え方、技術に関することまで、認識のずれを出来る限り解消できるに越したことはありません。</p>

<p>構成要素のうちどれか1つを無くしてもUXは成り立ちません。プロジェクトとして1つのサイトを作り上げるのに、全員でUXを創っているという意識があれば、そしてよりユーザーの満足を得られるサイトを作るという意思があれば、自ずとお互いを理解し合える素晴らしい環境が築けると思います。そして、例外なくそうしたプロジェクトは成功しているのではないでしょうか。フラッシャーの人はHTMLの役割を理解し、マークアップエンジニアはFLASHの役割を理解することで、何が必要で、何が不要なのかをお互いの内で共有することができるはずです。繰り返し述べているように、UXは「どのような体験を与え、ユーザーを満足させるのか」という云わば<strong>Webサイトの「提供価値」を考えるコンセプト</strong>です。FLASHが、HTML5が、という狭い視野ではなく、広い視野を持って取り組みましょう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>JavaScriptのあり方について考えてみた。</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/02/javascript.html" />
    <id>tag:shoonm.com,2010://1.39</id>

    <published>2010-02-02T03:08:40Z</published>
    <updated>2010-02-02T03:37:54Z</updated>

    <summary>「これからのWebのあり方について考えてみた。」で&quot;コンテンツ&quot;の役割を、「CS...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>「<a href="http://shoonm.com/2010/01/web-1.html">これからのWebのあり方について考えてみた。</a>」で"コンテンツ"の役割を、「<a href="http://shoonm.com/2010/01/web-2.html">CSSのあり方について考えてみた。</a>」では"見栄え"の役割を考えてきました。そして、最後に「<em>JavaScipt</em>」による"ふるまい"について考えていきたいと思います。</p>

<h3>クリエイティビティの可能性</h3>

<p>Webサイト制作におけるJavaSciptというのは、いわゆる「<em>DOM</em>」と呼ばれるAPIを利用して簡単なギミックを実装する程度のもので、リッチなインタラクションを提供するというのにはほど遠いものでした。しかし、JavaScriptエンジンの高速化が進み、表現力の向上が進展すれば、より"ふるまい"としてのクリエイティビティは格段に進化することになるでしょう。「<a href="http://shoonm.com/2010/01/web-1.html">これからのWebのあり方について考えてみた。</a>」で述べた通り、JavaScriptでネイティブアプリケーションと同等のクオリティを発揮するということは、それだけの「体験」を提供できるということを意味します。Flashを代表するリッチコンテンツ専用の規格と大きく異なる点は、<em>Web標準に準拠した上でリッチなインタラクションと表現力を発揮する</em>ということです。</p>

<h4>【JavaScriptエンジンの高速化】</h4>

<p>JavaScriptは2000年頃に、ECMAScriptの標準化作業に伴ってバージョンアップをするという動きがあり、去年の12月に「<em>JavaScipt 2.0</em>」の仕様策定が完了しました。GoogleやAppleを初めとする代表的なベンダがプロトタイプとして実装を行い、仕様の最終確認、相互の互換性、旧バージョンとの互換性などの検証を経ているので、ブラウザ間の非互換性が大きく改善されると思われます。その他にも「<em><acronym title="JavaScript Object Notation">JSON</acronym></em>」のサポートが強化され、セキュリティの強化が行われているそうです。</p>

<p>そして最も注目すべきなのは、JavaSciptエンジンの高速化による表現力の向上でしょう。先に述べた通り、Microsoft、Yahoo!、Adobe、Mozilla、Opera、Googleは標準化プロジェクトに取り組みつつも、JavaScriptエンジンの高速化にも余念がなく、事実上の「<em>JavaScript高速化競争</em>」が起きています。AppleはSafari 4で「<em>Nitoro</em>」というエンジンを実装し、Operaは「<em>Carakan</em>」というエンジンを実装中、Firefoxは「<em>TraceMonkey</em>」というエンジンを実装中、そしてGoogle Chromeは「<em>V8</em>」と呼ばれる独自のエンジンを搭載し、その性能の高さは実証されています。</p>

<h4>【新しいプラットフォーム】</h4>

<p>次世代プラットフォームとして最近注目を集めているのは「<em>WebKit</em>」です。WebKitはすでにHTML5の機能を取り込んでいて、WebブラウザのGoogle CromeやSafari、iPhoneでも採用されているし、Symbian陣営もWebKit搭載に動いているそうです。これが何を意味するかというと、これからはPCがWeb標準を背負ってきた時代は終わり、他のプラットフォームが主流になる可能性すらあるということを示唆しています。</p>

<p>表現力やWebアプリケーション開発フレームワークが貧弱であるHTMLの代わりに、「<em>Adobe AIR</em>」や「<em>Silverlight</em>」、「<em>Flash</em>」などが活躍しているわけですが、オーディオやビデオといったマルチメディア関連機能、Webアプリケーション向け機能が充実しているHTML5がWebKitによって普及すれば、それらの技術は不要になるかもしれません。単純に"ふるまい"という意味でも、「<em>CSS 3</em>」の表現力向上やJavaSciptエンジンの高速化などの発展が進めば、セマンティックでありながらクリエイティビティ溢れるコンテンツを作ることも夢ではありません。</p>

<h3>コンテンツと表現の相互作用</h3>

<p>では、Web標準に準拠しているということにはどのような意味があるのでしょうか。HTMLが骨格、CSSが外装であるなら、JavaScriptは「<em>体験</em>」を提供します。過去、ブラウザベンダの独自拡張が相次ぎ、意味のないアニメーションやUIを実装したサイトが乱立した関係で、JavaScriptによるインタラクションを苦手とするユーザーは少なくありません。今でもそのようなWebサイトはありますが、それは体験を与えているのではなく、制作者側のエゴをユーザーに押し付けているに過ぎないのです。</p>

<p>体験というのは、ユーザーのニーズや利用状況を把握し、心理状態を理解するという「<em>人間中心設計</em>」と呼ばれるアプローチを行い、その上で<em>どのような体験を与えれば響くのか</em>ということを考えて導きだされるものです。これはWebサイト全体を設計する際に必要になる行程ですが、狭義な意味での体験として、いわゆる「<em>ユーザインタフェース(以下、UI)</em>」にも同じことがいえると思います。例えば大型マーケットなどにあるエスカレーターは、ユーザーのニーズや利用状況を把握した上で設置されています。もしもエスカレーターが「動く階段」として飾られているだけなら誰にとっても意味のあるものに成り得るでしょう。これはあまりに極端ですが、そのようなUIが数年前のWeb世界では当たり前のように存在していたのです。</p>

<p>そして、エスカレーターの素晴らしいところは仮に動かなくなっても「人を移動させる」という目的をしっかりと果たすということです。そうしたコンテンツと表現を相互に作用させる操作能力を提供するのがJavaScriptのもう一つの役割であり、Web標準に準拠するということの本質的な意味です。Progressive Enhancementという考え方に基づいて言い換えれば、<em>JavaScriptが機能しなくてもユーザーがWebサイトを利用できるような配慮をしつつも、より快適なUIを提供する</em>ということになります。</p>

<h3>JavaScriptの実際</h3>

<p>CSS以上に利用環境に依存してしまうJavaScriptですが、実はずいぶん前から「<em>unobtrusive JavaScript(出しゃばらないJavaScript)</em>」という考え方がありました。HTMLの要素などに直接JavaSciptを記述せず、外部JSからHTMLソース上の要素に結びつけるという手法です。これによってHTMLの保守性が高まる、JavaSciptがオフのブラウザでも動作する、再利用が容易になるというメリットがあり、ブラウザ対応の振り分けも容易になります。つまり、JSをオフにしているユーザーには最低限のインタラクションを提供し、高水準のブラウザを利用しているユーザーや高機能デバイスを利用するユーザーには、よりリッチなインタラクションを提供するということが可能になるのです。</p>

<p>「<a href="http://standards.mitsue.co.jp/archives/001390.html" target="_blank">Graceful DegradationとProgressive Enhancementの実践 | Web標準Blog</a>」で、オンラインショッピングの決済画面などによくある「印刷するボタン」をProgressive Enhancementなアプローチで実装するという事例があるので、引用します(この辺りは他力本願で申し訳ありません；)。</p>

<blockquote>
<p>Progressive Enhancementは、最低限提供したい機能や目的を「ベースライン」として設定します。印刷リンクは「ページを印刷したいというユーザーのニーズに答える」ことが目的ですから、まず「ページの印刷について言及する」ことをベースラインとしましょう。</p>
</blockquote>

<p>まずは、最低限提供するべき内容を定めています。ここでは以下のような形で「印刷して保管できます」ということを文章で伝えています。</p>

<pre><code>&lt;p id="printthis"&gt;Thank you for your order.
 Please print this page for your records.&lt;/p&gt;</code></pre>

<p>では、次に実現したいことをどのように実装するのでしょうか。以下のようなスクリプトで、ブラウザが必要な機能を満たすときのみ、印刷ボタンが表示されるようにしています。</p>

<pre><code>&lt;p id="printthis"&gt;Thank you for your order.
 Please print this page for your records.&lt;/p&gt;
&lt;script type="text/javascript"&gt;
(function(){
  if(document.getElementById){
    var pt = document.getElementById('printthis');
    if(pt &amp;&amp; typeof window.print === 'function'){
      var but = document.createElement('input');
      but.setAttribute('type','button');
      but.setAttribute('value','Print this now');
      but.onclick = function(){
        window.print();
      };
      pt.appendChild(but);
    }
  }
})();

&lt;/script&gt;</code></pre>

<blockquote>
<p>この手法は、印刷リンク(ボタン)だけではなく、文字の拡大縮小インターフェースなどにも利用することができるでしょう。まずブラウザーの文字サイズ変更機能について言及し、インターフェースをあとからJavaScriptで組みこむのです。</p>
</blockquote>

<p>矢倉さんが述べている通り、まずはその機能が本当に必要なのか？を言及する必要があります。「コンテンツと表現の相互作用」で述べた通り、「体験」とは必要なことだけを考えていれば良いということではなく、<strong>提供しなくて良いことも明確にした上で、どのような体験を与えれば響くのか</strong>を考えることに意味があります。つまり、制作者側がやりたいだけのエゴを押しつけるのではなく、ユーザーを理解した上で必要な機能を提供するということが大切なのです。ユーザーが理解出来ているのなら、「何が必要か」だけではなく「何が不要であるか」も明確になるはずだからです。</p>

<h3>最後に</h3>

<p>3回に渡って「○○のあり方について考えてみた。」について自分なりに考察してきましたが、ただインプットを行うのと、アウトプットをするためにインプットするのとでは、全く意味が異なるということが分かりました。前者はインプットすることが目的なので、一時的に満足はするもののすぐに忘れてしまいます。後者はアウトプットをするためにインプットを行うので、一度頭の中で情報を整理し、まとめるという作業が必要になります。色々な記事を参考にしながら書かせていただきましたが、自分の血肉となった感じがしています。今後も定期的に更新をしていこうと思いますので、よろしくお願いいたします。</p>]]>
        
    </content>
</entry>

<entry>
    <title>私たちがWeb世界を作っているということ。</title>
    <link rel="alternate" type="text/html" href="http://shoonm.com/2010/01/web-3.html" />
    <id>tag:shoonm.com,2010://1.38</id>

    <published>2010-01-31T12:36:34Z</published>
    <updated>2010-02-01T03:43:41Z</updated>

    <summary>Web標準について思うところがあったので、自分の意思確認のためのアウトプットです...</summary>
    <author>
        <name>shoon</name>
        
    </author>
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://shoonm.com/">
        <![CDATA[<p>Web標準について思うところがあったので、自分の意思確認のためのアウトプットです。</p>

<h3>Web標準とは</h3>

<p>Web標準とは、W3Cによって規格化されている標準技術のことを指します。構造的かつセマンティックなマークアップ、見栄えをCSSで制御する手法で実装を行うことで「<a href="http://shoonm.com/2010/01/web-2.html">CSSのあり方について考えてみた。</a>」で述べたような技術的なメリットが得られるだけでなく、ブラウザサポートの改善、ノウハウの普及、学習コストの低下などにも繋がります。</p>

<p>また、Webの利用者に占める高齢者やハンディを持つ方々の割合が高まり、Webアクセシビリティの重要性が広く認知されてきています。2008年12月に、草案の段階から多くのフィードバックが寄せられていた『<em><acronym title="Web Contents Accessibility Guidelines">WCAG 2.0</acronym></em>』が勧告され、Webアクセシビリティのガイドラインとして広く利用されています。JIS規格もWCAG 2.0と調和するよう改訂が進められているそうです。</p>

<h3>広義なWeb標準</h3>

<p>このように、XHTML、HTML、CSSなどの標準技術をWeb標準とすることが一般的です。その通りなのですが、個人的にはもう少し俯瞰した捉え方もあるのかなと思っています。些か極論ではありますが、広義な意味でのWeb標準とは、<em>Web世界で暮らす為のルール</em>であるということがいえるのではないでしょうか。私たちが暮らすリアル世界では、信号が赤になったら止まる、青になったら進むというルールがあります。私たちは産まれたその時から、そうした「常識」の中で成長するため、当たり前のようにそれらを身につけていきますが、Web世界はまだ十数年しか存在していないため、ルールがなければ誰もが好き勝手に道路を渡り、事故が多発するような世界になってしまいます。</p>

<p>このまま、この例え話に興じるなら、Web世界の政情を司っているのがW3Cという国家組織で、学校で使われる教材が文部科学省の検定を受けているのと同じように、W3Cという組織では、仕様の策定が行われています。その中にはTim Berners-Leetという総理大臣がおり、Apple, Google, Microsoft, Mozilla, Operaといったブラウザベンダーを始め、幅広い分野の企業が閣僚として参画しています。そして、その国の執政にあたるのが国会議員であり、実際にWeb世界において権力を持っている方々はそれに当たります。彼らは率先して市民の声に耳を傾け、ニーズを汲み取り、執行機関の施策に反映していかなければなりません。</p>

<p>そうした地位にいる人はほんの一握りで、私を含め殆どの人は毎日のように政治家活動を行っている立場です。中にはいわゆる政治活動家として暗躍されている方もいるかもしれませんが、政治活動を行っていることに変わりはありません（語弊があると難なのですが、あくまで例え話です）。重要のは私たちがWebを生業としている限り、<em>Web世界における政治家としての責任がある</em>ということです。以下、Wikipediaから「政治家に求められる資質」を引用します。</p>

<blockquote>
<p>マックス・ヴェーバーは、「政治家の本領は『党派性』と『闘争』である」と指摘している。そのうえで、政治家に求められる資質として以下の3つを挙げている。</p>
<ul>
<li>未来を構想しながら、現実を変革していこうとする情熱</li>
<li>現状をいまそこにあるままに、しかも一定の距離感覚をもって理解できる洞察力</li>
<li>政治がときには暴力を手段として選ばざるを得ないことを踏まえた結果責任への自覚</li>
</ul>
</blockquote>

<p>リアル世界でも政党があるように、Web世界でも様々な主張があります。HTML5に関する主張をする人もいれば、方やRIAに関する主張をする人がいます。個人で活動するタフな人もいるかもしれませんが、大体は同じ主張を持つ者同士が組織を作り、目標の実現に向けて切磋琢磨するはずです。私個人の話で言えば、Web制作者である以上、今ある現状を受け入れ、どうすればより良くなるのだろうか？と試行錯誤し、自分の判断が時には悪影響を及ぼす可能性があるという責任感を持って取り組み、未来を構想しながら現実を変えようとする姿勢を保ち続けたいと思っています。</p>

<p>とまあ、例えが分かりづらい上にかなりの極論になってしまいましたが、要するにWeb標準というのは、私たち次第でどうにでも変えられるということです。当時は理想論だと言われていた標準技術も、今ではWeb制作におけるデファクトスタンダードになっています。CSS 2.1においては、未だ勧告もされていないのにも関わらず、ブラウザで実装されているモジュールは積極的に利用され、IE6などの旧ブラウザのために、解釈の違いを逆手に取った『<em>CSSハック</em>』と呼ばれるテクニックなども生み出されていきました。CSSハックは標準技術ではありませんが、特定のブラウザのレンダリング処理を補うためには必要なものであり、Web標準が普及する上で暗躍してきました。</p>

<p>CSSハックや、こうしたクロスブラウザありきの考え方の善し悪しは置いておいて、ただ普及するのを待っているだけではなく、新しい技術や考え方があるのなら、どんどん取り入れていこうという姿勢が大事だと思うのです。Web標準はあくまで"標準"なので、決められたことは是が非でも守らなければならないというような厳格なルールではなく、ガイドラインとしての大まかな指針という認識で良いと思います。いわゆる「勧告」というのはISOやJISのような標準規格とは異なり、デファクトスタンダード(事実上の標準)という形式とっているため、勧告された時点で利用可能、もしくは既に普及しているということになります。そういった性質上、多くのエディターが議論を重ねながら段階を経て策定され、一般ユーザーからの意見を反映して改訂も行われるため、勧告されてから論争が起こるということはまずないでしょう。</p>

<p>Web標準に対する姿勢について偉そうに述べきましたが、伝えたいことは、<strong>私たちがWebという世界を作っている</strong>ということです。そう思うとちょっと自信が沸いてきませんか？リアル世界と同じように政治を変えるにはそれ相応の主張が必要であるし、世界を動かす権力を持つには、それ相応の地位が必要になります。何にしても「政治家に求められる資質三ヶ条」は忘れずに可能な限り実行していきたいものですね。</p>]]>
        
    </content>
</entry>

</feed>

