6

次のようなフォームがあるとします。

<form action="/foo" method="POST">
    <input type="text" name="username">
    <input type="text" name="password">
    <input type="submit" value="Login">
</form>

私の場合、どの入力タグにも「id」属性を与える必要はありません。CSS を介してスタイル設定されていない、それを参照する JavaScript がないなど。安定したままになります。

開発者として、機能的な目的を果たさない id 属性を追加することに非常に懐疑的です。

  • コードがごちゃごちゃしていると思います。
  • それを見ている将来の開発者を混乱させます。
  • その時点で使用されているテスト ツールに縛られます。
  • 製品のコードベース外のコードに私たちを拘束します。
  • コードがどのようにテストされるかについて何かを知っていると、コードの滑りやすい坂道を下り始めます。

長所: QA の観点からは、これが次のようになることは確かに共感できます。

  • 彼らの仕事をより簡単にします。
  • 安定性を提供する(短期的に)

ここで始めた賛否両論のリストを拡張するための助けを得ることができますか?

4

4 に答える 4

5

フォーム入力に属性を含める重要な機能上の理由の 1 つは、対応する要素を入力idに明示的に関連付けることができるようにするためです。label

<form action="/foo" method="POST">
    <label for="username">User Name</label>
    <input type="text" id="username" name="username">
</form>

これは、アクセシビリティとユーザビリティにとって重要です。スクリーン リーダーのユーザーは、この関連付けに依存して、自分が入力している入力内容を認識します。ラベルが適切に関連付けられている場合も、ユーザビリティに大きな違いがあります (ユーザーはラベルをクリックして、関連付けられた入力にフォーカスを設定できます)。checkboxこれはとradio入力を使用すると明らかです。

チェックボックスの両方の例をいじってください。(入力自体よりもラベルをクリックする方がはるかに簡単であることに注意してください)

あなたの反対については...id属性を追加すると、あなたが述べた「短所」がどのように機能するかわかりません。乱雑?いいえ、有効な使用可能なコードです。混乱しますか?いいえ、IDと適切に関連付けられたラベルは、そのコードを見た場合に最初に追加するものです。テスト ツールと外部コードに拘束されますか? どのように正確に?テストクルーの作業が楽になるという事実は、おまけです。

于 2012-11-27T08:30:45.773 に答える
4

最初の 2 つの短所は有効ですが、最後の 3 つには同意しません。

テスターに​​論理要素 ID を提供するというスタンスを取ることもできますが、テスターは、使用するテスト ツールなどでそれらを利用する責任があります。これは、テスト/ツールにとらわれないことを意味します。ID がどのように使用されるかを必ずしも正確に知ることなく、テスト用に ID を提供するだけです。

このように Id を追加することは、今日の多くの Web アプリにとってかなり標準的な方法です。

于 2012-11-26T23:40:21.143 に答える
3

可能であれば、ページに複数のフォームがある場合、テストツールは名前属性とフォームのアクション属性に基づいてフィールドに入力する必要があります。これらは、POSTリクエストに応答するサーバーの一部と同じくらい安定していることが保証されています。

ID、フィールドの順序、およびその他の属性は、フロントエンドの理由により変更される場合があります。

于 2012-11-26T23:35:45.633 に答える
0

私にとっては場合によります。ID がなくても要素を簡単かつ確実に見つけることができるかどうかによって異なります。

あなたの例では、はい、ID を追加することは無駄ではありませんが、必要ではありません。ただし、それはすべて、例です。

多くの Web ページでは、ますます複雑になるにつれて、ID が友達になります。ID がないと、要素を見つける他の方法を検討する必要があるからです。

特に Selenium の世界では、この問題に遭遇した場合、通常は CSS および/または XPath セレクターに目を向けます。

他のセレクターは悪いものではありませんが、サポートしている場合、古いブラウザーでは非常に遅くなる可能性があります。

于 2012-11-27T12:38:33.650 に答える