[mayaa-user:339] Re: HTMLバリデーションエラーについて

suga ko.suga @ gmail.com
2006年 11月 16日 (木) 07:56:55 JST


suga です。

デザイナーさんの手作業に関するものは、基本的にお願いして
理解してもらって気をつけてもらうしかないとして……

On 11/15/06, 佐藤 邦夫 <kuni527 @ gmail.com> wrote:
> ■デザイナーによる保守時の問題点
>  ・空のspanタグ(m:idのみのspanタグ)が消される

中にダミーの文を書くのが良いでしょう。
Struts の errors タグはダミーのボディまで出力してしまうという
余計な処理がありますので、なんとか回避しないといけません。

小細工1:暗黙の <m:doBody/>を無効にする
    例)
        Mayaa ファイル
        <m:with m:id="...."><html:errors name="..." /></m:with>

小細工2:中身をビルド時に消す
    例)
        html ファイル
        <span m:id="...."><span m:id="dummy">ダミー</span></span>
        Mayaa ファイル (default.mayaa に置くと便利)
        <m:null m:id="dummy" />

>  ・インライン要素でブロック要素くくることによるバリデートエラーの発生(例えばspanタグでtableタグを括ったりする場合)

これはテンプレートを作る人が気をつけるというのが一点、
Mayaa ファイル側での工夫が一点ですね。

<span> で <table> を囲むというのは、<div> で囲むようにすれば済みます。
Firefox の Extension などで簡単にバリデーションできますし。

問題は <ul><li> のように余分なタグを含められない場合ですが、
Mayaa ファイルが多少複雑になることとのトレードオフです。


サンプル集を作ろうと思いつつ手が回っていません……。

    例) 内部のみタグを残したままループさせる
        html ファイル
        <ul>
            <li m:id="loop">内部省略</li>
            <li m:id="dummy">二行以上のダミーが必要なら m:null で消す</li>
        </ul>
        Mayaa ファイル
        <m:forEach m;id="loop" items="..." replace="false" />


    例) 外側を echo で当て、内部のみループさせる
        html ファイル
        <dl m:id="loop">
            <dt>内部省略</dt><dd>内部省略</dt>
            <dt m:id="dummy">二行以上のダミーが必要なら m:null で消す</dt>
            <dd m:id="dummy">二行以上のダミーが必要なら m:null で消す</dd>
        </dl>
        Mayaa ファイル
        <m:echo m;id="loop">
            <m:forEach items="..." var="...>
                <m:doBody/>
            </m:forEach>
        </m:echo>



> ツール(Dreamweaver)が勝手に消してしまったりすることがあるようで
> バリデーションエラーを起こさないようにmayaa化を検討(m:id→id属性使う等)してますがなかなか難しく

m:id や xmlns が Dreamweaver のバリデーションに引っかかる問題は、
Dreamweaver の設定で回避できます。

http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_19404

Exceptions.xml に
 <attribute tag="html" attribute="xmlns:m"/>
 <attribute tag="html" attribute="xml:lang"/>

 <attribute tag="div" attribute="m:id"/>

のような形で書いていき、このファイルを設定してもらえば良いでしょう。
正直なところバッドノウハウだと思いますけど。
# xmlns に対応して欲しい……

-- 
suga ( ko.suga @ gmail.com )


mayaa-user メーリングリストの案内