Hatena::Groupweb

vantguarde

5.19

microformatsのValue Class Pattern

| 23:02

はいはい。ということで、microformatsに久しぶりに大きな動きがありました。

新しいパターンが追加されて、いろんな問題が解決されるよって話です。

I18n問題

microformatsのいくつかのフォーマットにはi18nに関する問題がありました。要素内容がプロパティの値として使われるものが、ローカライズできないんですね。たとえば tel とか adr のサブプロパティなどがそうです。

<span class="tel">
    <span class="type">Cell</span>:
    <span class="value">090-0000-0000</span>
</span>

この“Cell”の部分をたとえば「ケータイ」とかに変える事ができないわけです。なぜなら「ケータイ」はvCardのサブタイプではないから。とまあ、こういう頭おかしいデザインになっており、i18n的に問題があったわけです。

Value class patternを使うと、次のように書くことができます。

<span class="tel">
    <span class="type">
        <span class="value-title" title="cell"> </span>
        ケータイ
    </span>:
    <span class="value">090-0000-0000</span>
</span>

新たに.value-titletitleを含む要素を入れる事で、値をその要素のtitle属性値から取る事ができるっていうソリューションです。気味悪いですね。

datetime-design-patternも

これを使えば、datetime-design-patternのアクセシビリティに関する問題も回避する事ができるそうです。

<p class='dtstart'>
    <span class='value-title' title='2009-03-14T16:28-0600'> </span>
    March 14th 2009, around half-past four
</p>

.value-titleで”March 14th...”を囲っても構いませんが、BBCなんかはツールチップを問題視してたので、それも回避できることをアピールしたいのでしょう。

マークアップのふしぎ

半角スペースがなぜかある件なのですが、なんかうまく処理してくれない実装があるからとのこと。

ただ、スペースがあってもwhite-spaceとインラインボックスの処理が働いて、このスペースはレンダリングされません。なんというかですが、クレバーですね。。

雑感

telくらいならtel-cellとかでダメなのかなあと前から思っていたりもしますし、これらをまとめて「パターン」で解決するのも、なんとなく手段を間違えているような気がします。あくまで気がするレベルなのでどうでもいいんですが。彼らにとってはabbrの使い方といい、自然なんですかねえ。

「ほぼ空のspanは果たして意味的と言えるのか」っていう問題についてですが、例外なんですかね。まあ、visible metadataというものに固執しなかったのは好かったなあと思います。

ほかにも.valueがあったら、その内容がconcatされるとか、そういう事もいろいろ書いてあります。パターンというにはちょっと複雑かも。

5.14

GoogleのRich Snippets

| 00:42

触れておきますよ。

Today, we're announcing Rich Snippets, a new presentation of snippets that applies Google's algorithms to highlight structured data embedded in web pages.

Rich Snippets give users convenient summary information about their search results at a glance. We are currently supporting data about reviews and people. When searching for a product or service, users can easily see reviews and ratings, and when searching for a person, they'll get help distinguishing between people with the same name.

Official Google Webmaster Central Blog: Introducing Rich Snippets

検索結果にレビューや人の名前があったら、ちょっと違う見た目になるようです。

で、レビューや人についての情報をどうやって判断するかというと、microformatsやRDFaを使うと。書いたら何もしないでも結果に表れるってのは、Yahoo!のSearchMonkeyと違って良いところかなと。

ただ、現在の実装はmicroformats, RDFaともに良くない感じです。結構厳しいマークアップを課すmicroformatsは、それが定義されていないように使われる可能性があります。まあ、コンベンションなのでそこは崩れても良いのかもしれませんが。

RDFaは、自分で好きな語彙を使う事ができず、data-vocabulary.orgで定義されているプロパティのみが対象となるようです。そして公開されているRDFスキーマが良くない感じ。ここは報告しておかないと。

じゃあ、Googleは何も知らないアホ集団か(そしてGoogle叩きへ)みたいな流れになるかというとそうではないです。指揮をとってるのはAppleでMCFをつくって、後にNetscapeでRSSへと発展させたRamanathan V. Guhaですし、ちゃんとしてます。

インタビューも結構面白いですし、今後の向上に期待したいところ。

11.1

hCard 日本語版

| 22:56

先週末から久しぶりにmicroformats wikiの日本語版に手を加えていたりします。英語版とsyncしたり、ほったらかしになってるページに手を入れたりなどしてます。

というわけでほったらかしにされていたhCardの日本語版を終わらせました。とはいえ終盤からめんどくさくなったり、あと原文が訳しにくい部分があったりしてけっこうやっつけてるところもあります。気になる方は修正してくださいな。あ、殴る方じゃないですよ。

で、hCardなんですが、いくつか日本語と対応できてない部分があったりします。特に有名なのが"n" の推測処理Implied "n" Optimization)に関する問題ですかね。

<div class="vcard fn">山田 太郎</div>

こう書くと、hCardは自動的に「山田」をgiven-name(名)、「太郎」をfamily-name(姓)に割り当てちゃいます。なんというwestern centricって感じでもあるのですが、コンベンションの前には勝てないというか*1

問題としては認識されていて、hcard-issuesにて解決策が載っています。

<div class="vcard fn n"><span class="family-name">山田</span> <span class="given-name">太郎</span></div>

とまあ、面倒ですが.family-nameと.given-nameでいちいち書けってことですね。TantekがNoteとしてそのうち書く事になっているので、書いたら訳そうと思います。うーん、でも書いといた方がいいのかしら。

他にもちょっとあるのですが、書くのがだるいのでとりあえずここまで。ローマ字以外で名前をマークアップする時は気をつけてくださいねー

*1:まあ、ミドルネームも表記する人も同じ運命だったりしますし

5.3

検索結果に必要ない情報を省くrobots-nocontent

| 17:10

Yahoo! Search BlogのIntroducing Robots-Nocontent for Page Sectionsというエントリにて、robots-nocontentというmicroformatみたいなものが提案されています*1

ページのメインではない項目にclass="robots-nocontent"を付加することで、クローラがその部分を検索結果の対象としないよう処理します。シンプルですね。

例は次のような感じでしょうか。

<div class="header">
  <h1>うぇぶさいと</h1>
  <ul class="navigation robots-nocontent"><!-- nav --></ul>
</div>
<div class="main">
  <div class="ad robots-nocontent"><!-- ads --></div>
  <h2>たいとる</h2>
  <p>えんとり</p>
</div>
<div class="sidebar robots-nocontent"><!-- sidebar --></div>
<div class="footer">
  <address class="copyright robots-noconent">Copyright ...</address>
</div>

サイドバーやナビゲーション、ヘッダーに広告など、いろいろ「無駄」な情報を検索エンジンが拾ってしまうことはよくありますし、それらを排除することでユーザによりよい結果を提示しようとしているのでしょう。まあ、メインの情報をうまくマイニングできないと暗に示しているだけかもしれませんが。。

しかし、メインの情報を拾わせることは意味があるように思うんですが、アプローチの仕方があまり美しくないですね。メインの部分に埋める"robots-main"なんかも欲しいなあと。

さて、ここで思いつくのはXHTML Roleです。予めrole="main"role="navigation"role="navigation"というRoleが定義されているので、検索エンジンはそれを利用してメインの情報を適切に拾うことが可能となります。早く出て欲しいなあ。

*1:広がりによってはrel-nofollowみたくmicroformatとしてμf.orgに取り込まれるかも

aratako0aratako02007/05/07 13:47このニュースを見ていて思ったんですけど、やっぱりa rel="nofollow"とは違うんですよね。ほかの検索エンジンがサポートしてくれるのなら、やりがいもあるんでしょうけど。

vantguardevantguarde2007/05/09 16:49rel-nofollowはコメントスパム対策っていう目的があったので広まったんでしょうね。robots-nocontentのような明らかな不利益への対策ではないものは、なかなか使うことのメリットを見いだせない人が多いんじゃないかなと思います。

3.13

要素を増やすことだけを新しいHTMLに求めるべきではない

| 04:40

Semantics in HTML Part III - Towards a semantic webなんていう長ーいエントリを読みました。書いた人はJohn Allsopp, microformatsの中の人です。そういえば彼の書いたmicroformats本がそろそろ出るらしいので、気になる人はチェックするといいかも。

タイトルに"semantic web"と小文字であるように、W3CセマンティックWebの話題ではありません。RDFうんぬんかんぬんと言ってますが、真っ当な批判ではないのでそこら辺は読み飛ばせばよいです。良くある大文字と小文字の馴れ合いってやつです。まったくもう。

さて、JohnはセマンティクスをHTMLに埋め込むという観点から、新しいHTMLの必要性であったり、そのアプローチに疑問を感じている様子。要は新しい要素や属性を追加してもニーズのすべてをカバーする事ができず、終わりのない実装を要求するのでよろしくないとのこと。

たとえばWeb Applications 1.0 (HTML5)ですが、現在よく使われているclass属性値から新しく要素を設けています。何年か経つと「古く」なってしまい、また新しい要素の追加をしないといけなくなる可能性があるわけです。XHTML2はそこまで数が増えた印象もないのですが、まあ要素を増やしてより多くの意味づけに対応させるっていうアプローチは一緒です。ここにJohnは疑問をもってるわけですね。

What HTML needs is a mechanism for extending the semantics of the language without changing the language itself.

仕様を変える事なしに、意味づけの多様性を確保できる仕組みこそが求められるものであると言っています。まあ、classとidでなんとかするmicroformatsのことですね。HTML5のpredefined classだったり、XHTML2のroleであったり、作成者側から何とか出来る仕組みをもっと考えた方が良いんじゃないかと訴えかけてるようです。

頷くところもあるのですが、microformatsだけで何もかも解決できるわけではない気もします。各人が自由に新しい語彙を属性値サイドから提供できたとしても、結局それもsub languageであるし、実装面での問題は完全には解決できなさそう*1

まあ「新HTMLは要らない」と言ってるわけではなく、「新しい要素を増やしてもっと汎用的になろう」という動きへの疑問なので、新しいHTML WGが動き出したら、こういう意見はきちんと議論していきたいところ。

*1:user scriptでごりごりできはするけれど

Contact: @vant / lepetitcroissant@gmail.com.