操作
Bug(バグ) #1474
未完了Same id attribute value is described several times in the pc_backend/profile/edit page (管理画面のprofile/editで同じID属性値が複数回記述されている)
開始日:
2010-08-03
期日:
進捗率:
0%
予定工数:
3.6 で発生するか:
Yes
3.8 で発生するか:
説明
Overview¶
管理画面のプロフィール編集(追加)ページでは、プロフィール項目に関するフォームがいくつかありますが、そのプロフィールをプリセットから設定するか独自のものにするかを冒頭で選択するようになっています。そして、プリセットか独自かは、JavaScript によって切り替えが行われ、CSS によってどちらか一方が表示される設計になっています。
しかしながら、HTML 上ではプリセット用のフォームと、独自用のフォームがそれぞれ記述されており、フォームの同一項目に対するid属性値が重複する形で記述されています。ID属性値は同一HTML内で重複することは許されていません。
Influences¶
実際、同一HTML内でID属性が重複してもブラウザは問題なくページをレンダリングします。
しかしながら、ID属性に基づく機能(ラベルリンク、フォームのラベル関連付け)は想定したように機能しなくなる可能性があります。
実際、プロフィール項目のフォームコントロールに関して、ラベルの関連付けが機能していません。
Way to fix¶
このページの設計を変えて、HTML中にプリセットと独自のものが排他的に表示されるようにするのも一つの対応策ではありますが、修正の規模を考えると、単にID属性値を重複しないものに変更するという方法が好ましいと考えられます。
例えば、プリセットと独自のものに含まれるフォームコントロールに記述しているID属性値に対して、それぞれに接頭辞を付けるという修正が考えられます。
Version¶
手元で確認した限りでは、 3.2.x では既にこの問題が生じています(3.2より前のバージョンは確認していません)。
操作