Masayuki さん、ご教示ありがとうございます。
Vitz さん、トピ主を差し置いて失礼します。
Masayuki さんが書きました:
まず、日本語と中国語というのはメジャーな言語の中では特殊で、単語をスペースで分かち書きしません。これらの言語は幸い、大文字・小文字という概念が存在する欧米の言語の文字(つまりアルファベット)を使いませんので、アルファベットの部分だけ独立した単語であると解釈するべきだと私は思います。
なるほど、そういわれればそうですね。
ただ、日本語文内にある英単語(アルファベット)の前後のスペースを意識すべきだと思ったのには理由があります。
一般に、書籍などを作るために文章を組み上げる組版ソフトでは、日英混在の文章――とくに日本語の文章中に含まれる英単語にたいして、その前後にアキを挿入するコマンドが普通に存在します。ワープロソフトでも同様です。
単語としてはアルファベット部分だけを理解できればいいのですが、可読性を考慮した日本語(ベースの)組版を意識した場合、そのように処理されることがしばしばあります。(ただ、これも絶対的なルールが存在するわけではないので、デザイナーや組版オペレーターの裁量に左右されるのですが。)
この流れから、日本語と英語の混在文を書く段階で、日本語中の英単語の前後に半角スペースを入れるような書き方をする人も普通に存在します。(もちろん、そうでない人もいます。)
で、個人的には、HTML や CSS の解釈とその適用以前に、そもそも複数言語の混在テキストの書き方として英単語の前後のスペースを意識したほうが自然なのではないかと考えたわけです。テキストをそのように書けば、現状のどんなブラウザでも text-transform: capitalize; が適用されるわけですし......。
まあ、ぼく個人の仕事上の習慣からそう考えるのかもしれず、何が何でもこだわる気持ちはありませんし、他人に強要する気もありませんが...。
しかし、CSS の解釈――この場合、text-transform: capitalize; に限って考えると、
Masayuki さんが書きました:
アルファベットの部分だけ独立した単語であると解釈するべき
としたほうが、たしかに自然かもしれませんね。
text-transform は、あくまで大文字・小文字のコントロールに限る話であって、混在文の可読性まで視野に入れて論じるべきではありませんでした。失礼しました。
Masayuki さんが書きました:
ここで難しいのがどのような文字が、日本語、もしくは中国語なのか、という点です。もちろん、仮名や漢字は全て含めれば良いのですが、記号が問題になってきます。IEとWebKitでもやはり解釈は割れていて、特にASCIIのレンジの記号の扱いが異なっています。
ちなみにCSS仕様では単語の切れ目というのは何も定義していません、というかやるべきではないですし、実際問題、できません。
とりあえずパッチ作成にトライしていますが、まだしっくりと来るものができていません。
一般に言語(少数言語も含めて)の扱いは、歴史的・民族的な背景や長年の習慣もあるだけに、ひとつの「仕様」として割り切って簡単に「定義」してしまえるものでないことは、素人目に見ても想像できます。
そういう難しさをふまえて、それらの問題に取り組まれている開発者・関係者のみなさんには感謝しています。