一般に、最初は無効であるが、最終的に(スクリプトによって) 技術的に有効になるHTML ドキュメントを問題ないと見なすことができますか?
「OK」は、この質問に答える場合、グッドプラクティスごと、またはおそらく標準に関してです。
たとえば、このシリアル化された HTML マークアップを解析した結果のドキュメントは、最初にW3 バリデーターを使用して検証されます。
<!DOCTYPE html>
<title>foo</title>
bar
これはしませんが:
<!DOCTYPE html>
<script>document.title = 'foo'</script>
bar
これは、Javascript をサポートするどのブラウザーでも結果がまったく同じであるにもかかわらずです。これがWebアプリケーションであり、JSが必要であると仮定すると、このようなことは「OK」ですか?
最初に標準を満たすための (アプリケーションの観点から) 正しい方法がない場合、この状況について特に疑問に思います。たとえば、最初にドキュメントのタイトルがわからず、スクリプトを使用してタイトルを計算/取得する必要がある場合はどうなるでしょうか?
この特定のケースでは、プレースホルダーの使用は間違っているように感じます。
<!DOCTYPE html>
<title>placeholder</title>
<script>document.title = 'foo'</script>
bar
(タイトル要素を空のままにすることは、依然として無効と見なされることに注意してください。)
では、特に title 要素についてあまり議論することなく、最終的にのみ有効になる HTML リソースを配布することは一般的に受け入れられているのでしょうか?
サブ質問: ドキュメント (DOM で表される) を検証することと、シリアル化されたマークアップを検証することは、2 つの異なることだと認識しています。前者を行うツールはありますか?(DOM のスナップショットから、または「継続的に」) 例:
<!DOCTYPE html>
<title>foo</title>
<script>document.title = ''</script>
bar
これは最初は検証しますが、技術的には無効なドキュメントになり、明確な検出方法はありません。
更新:明らかに、そのようなツールは、静的分析のコンテキスト (問題の停止など) では価値が制限されます。ただし、ランタイム ツールが役立つはずです。
更新: Service Workersの W3C 仕様。これは、テンプレートが有効でなくても (プレースホルダー要素などの使用を避けて)、レンダリングされる前に DOM が有効であることを確認するために使用できるようです。この記事を書いている時点ではまだ早いです (2014 年 6 月 26 日なので、引用しないでください)。