link要素にlayer属性はよ
HTMLのlink要素でカスケードレイヤーを設定する手段はないのか的な話題を社内で目にし、へぇそうだったけと思いつつ、ちょっくら調べてみたんですね。結論、確かにlink要素で外部CSSファイルを読み込む際にレイヤーの名前を指定することは現状できない。
当初、検索してたらProposal: CSS @sheetという話を目にしたんですよ。は? @sheet?? 聞いたことありませんねそんな@ルール......って思ったら、タイトル通り議論中のアイデアだったみたいで、Explainerをざっと読んでみました。
@sheetがどういうものかは割愛しますけど、Explainerの途中でlink要素にsheet属性を指定できるようにする的な話が出てきて。それが可能なら、まず先にカスケードレイヤーを実現するためのlayer属性を定義・実装すべきでないの......とか思ったら、まさにそういう案をとりまとめたページが既にありました(Cascade Layering of HTML Linked Style Sheets)。そりゃそうよね:
One of the primary use-cases for cascade layering is to manage the priority of third-party CSS (libraries and design systems) in relation to site-specific styles. However, there are many situations where authors do not want to use
@importfor performance reasons, or cannot use@importbecause of build tooling. Providing this functionality on the HTML<link>tag would bring it in better alignment with the CSS import functionality.
でまぁ最終的に[css-cascade] Provide an attribute for assigning a <link> to a cascade layerに辿り着いたのですけど、ちょっと動きが止まっているように映ります。互換性の問題は根深そうですが、これが解決しない限り、そもそもカスケードレイヤーの普及って難しいんではないかしら。
そういうわけで、他力本願で申し訳ないですが、link要素にlayer属性はよ。なお私自身はまだカスケードレイヤーを使ったことはないけれど、例えば今年に入ってから読んだものに限っても、以下のような記事を読むたび、いずれは使うことになるだろうと思っています;
@kazuhitoは、木達一仁の個人サイトです。主に宇宙開発や人力飛行機、Webデザイン全般に興味があります。Apple製品と麺類とコーヒーが好きです。南極には何度でも行きたい。アクセシビリティおじさんとしてのスローガンは「Webアクセシビリティ・ファースト」。