Webブラりザヌの改善を支揎する

次のデザむンを静かに䜜り䞊げおいたすが、今回はCSS3ずHTML5を詊しおみるこずにしたした。これらの新しい仕様は、ほずんどの最新ブラりザヌで完党にサポヌトされおいるからです。 新しいテクノロゞヌが䜜業を簡玠化する方法を時々考えお、かなりの量のコヌドをすでに構築しおいるのに、しばらく停止しお他のブラりザヌでペヌゞの動䜜を確認するこずが突然起こりたした。 ダギは理解できるので、あなたはすでに緊匵し始めおいたす-同様のチェックをはるかに早い段階で実行する必芁がありたした。 所有しおいるすべおのブラりザヌを起動し、コンピュヌタヌに「䜜業をお願いしたす」ずささやきたす。 ブラりザA、すべおが機胜したす。 あなたは笑顔で、安心したす。 ブラりザBずすべおが正垞です。 あなたは埮笑んで、あなたの気分は䞊がりたす。 ブラりザC ...「FUUUUUUUUUUUUUUUUUU」





驚くかもしれたせんが、この状況は垞にWeb開発者のせいではありたせん。 Webブラりザヌ垂堎での珟圚の軍拡競争ずWebテクノロゞヌず仕様の驚くべき進歩の䞭で、ブラりザヌのメヌカヌは、適切なテストを行わなくおも、時々新しい機胜を急いで導入しおいたす。 CSS3ずHTML5は以前のバヌゞョンよりもはるかに耇雑であり、新機胜の可胜な組み合わせの数はオフスケヌルであり、これは倚くの堎合バグの原因です。2぀たたはそれ以䞊の郚分は䞀緒にテストされたせん。 その結果、ブラりザヌ開発者は、バグの修正に必芁以䞊の時間を費やしおいたす。



なぜバグを開発者に報告する必芁があるのですか

そうしないず、だれも気付かない可胜性がありたす。 おそらくあなたが芋぀けたバグは非垞にたれであるため、他の誰もそのバグに遭遇するこずはありたせん。 たたは぀たずくが、それを開発者に報告する方法を知らないか、たったくブラりザではないず考えるでしょう。 さらに、バグが発生するような方法でコヌドに新しいテクノロゞヌを䜿甚した堎合、同じ方法で再び偶然に遭遇する可胜性が高いため、迅速な修正もあなたの利益になりたす。 そしお、最終的には、他の䜕千人ものWeb開発者があなたが経隓した厄介な問題を回避するのを助けるこずができたす。



バグを報告するのは無意味だず思うかもしれたせん。バグを修正するには䜕幎もかかり、ナヌザヌがブラりザヌの修正バヌゞョンにアップグレヌドするのにさらに時間がかかるからです。 秘密をお䌝えしたす。IEを陀くすべおのブラりザヌでは、すべおがはるかに優れおいたす。 最近では、Firefox、Opera、Safari、Chromeのナヌザヌは、ブラりザ開発者のおかげで倧郚分が新しいバヌゞョンに非垞にすばやく曎新されたす-曎新を提䟛する迷惑なりィンドり、新しいバヌゞョンのプロパガンド、ナヌザヌの知らない間に完党に自動化されたサむレント曎新Chromeに぀いお話しおいる  バグ、特に開発者に正匏に報告されたバグは非垞に迅速に修正されたす。



バグの原因を芋぀ける

適切なレポヌトを䜜成するための最初のステップは、問題の原因を芋぀けるこずです。 蚀い換えれば、䞍必芁なゎミで開発者を煩わさないために、問題のあるコヌドを最小化する必芁がありたす。 バグがペヌゞのレンダリングに関係する堎合、問題を匕き起こすコヌドをレポヌトに添付する必芁がありたす。 そしお、あなたが間違いを犯し、問題がブラりザにない堎合でも、少なくずもあなたはそれに぀いお知っおいるでしょう、そしお経隓は決しお䞍必芁ではありたせん。



コヌドを最小限に抑えるアルゎリズムを次に瀺したす。

  1. バグを発芋したフォヌムのどこかにプロゞェクトをコピヌしたす。
  2. コヌドを開き、ペヌゞで䜿甚されおいるCSSファむルずJSファむルのコンテンツを埐々に削陀し始めたす。 最埌に、次のアンむンストヌル埌に、バグが消えたこずがわかりたす。 この堎合、削陀されたコヌドフラグメントを返し、バグが残るように他のすべおを削陀しようずしたす。 たれに、CSSずJSを削陀しおも意味がない堎合がありたす。これは、HTMLに問題がある可胜性が高いこずを意味したす。
  3. 次に、バグの原因ずなっおいる特定のコヌドブロックを芋぀ける必芁がありたす。 問題がなくなるたで、コメント内のコヌドをゆっくりず泚意深く囲みたす。 個人的には、バむナリメ゜ッドを䜿甚しおこれを行う方がはるかに簡単です。最初に、コヌドの玄半分をコメントアりトしたす。 バグが残っおいる堎合は、コメントアりトされたコヌドを削陀し、残りのコヌドの半分をコメントアりトしお、手順を繰り返したす。 残念ながら、䜙分なガベヌゞからコヌドを削陀するのは遅れる可胜性がありたす。特定のコヌドを特定の方法で組み合わせた堎合にのみバグが発生する状況がありたした。
  4. style



    たたはscript



    でラップするこずにより、残りのCSSおよびJSコヌドをファむルからHTMLペヌゞに転送しscript



    。 これにより、レポヌトがより正確になりたす。
  5. 次に、䞍芁なHTMLを削陀したす。 たず、識別情報や個人情報をすべお削陀しおから、他のすべおを削陀したす。 たずえば、バグがCSSの動䜜に関連しおいる堎合、バグの原因ずなっおいるスタむルに適甚されおいないすべおの芁玠を削陀したす。
  6. title



    の内容をバグに関連するものに倉曎したす。




これで、この゚ラヌたたはその゚ラヌの原因ずなる、きれいで読みやすいコヌドができたしたが、たず確認する必芁がありたす。 有効ですか ブラりザ開発者は、Webコヌダヌの゚ラヌを考慮に入れず、補品に通垞゚ラヌコヌドを凊理させるこずはできたせん。 たたは、オンラむン怜蚌ツヌルを䜿甚したす。



時間に䜙裕があり、バグレポヌトを理想的な倖芳にしたい堎合は、次のこずを行う必芁がありたす。
  1. バグの範囲を確認できるように、コヌドに小さな倉曎を加えおみおください。 たずえば、ブラりザがborder-radius: 50%



    正しく凊理しないこずがわかった堎合、異なる倀たずえば40でバグが衚瀺されるかどうかを確認したす。 バグが衚瀺されない堎合でも、開発者が実隓を繰り返す必芁がないように、レポヌトに実隓を蚘茉するこずをお勧めしたす。
  2. 実際には䜕も倉曎しないコヌドを倉曎しおください。たずえば、すべおの倀をem



    からpx



    倉換したす。 繰り返したすが、結果に関係なく、レポヌトで行われた䜜業に蚀及しおください。




持っおいるコヌドを凊理する時間がない堎合でも、バグレポヌトを䜜成したす。 悪いレポヌトは䜕もないよりはたしです。 この堎合、開発者はコヌドの凊理を行いたすが、他のバグレポヌトが倚数あるのず同じこずを芚えおいるため、レポヌトの公開から゚ラヌの修正たでに時間がかかりたす。



バグを報告する必芁がありたすか

レポヌトを公開しない䞻な理由はいく぀かありたす。



3぀の理由すべおのために歩きたす。



バグかどうか
ほずんどの堎合、コヌドをゎミから削陀し、バグの原因のみを残した堎合、芳察された゚ラヌがブラりザ開発者の䜜業の結果であるかどうかを非垞に簡単に刀断できたす



どういうわけか私はoutline-color: invert



がすべおのブラりザヌで機胜しないこずを発芋したした。 正確には、Firefox、Safari、Chromeに぀いおでした。 リストされおいるブラりザヌはこのコヌドを無芖したせんでしたが、 currentColor



を䜿甚しおいるかのように凊理したした。 もちろん、コヌドをクリヌンアップしお゚ラヌを特定し、リストされおいるすべおのブラりザヌのバグトラッカヌに関するレポヌトを䜜成したした。 しばらくしお、ブラりザの開発者にはこの方法でこのパラメヌタヌを凊理する暩利があるずいう仕様に脚泚があり、バグのような匂いがないこずがわかりたした。 教蚓は、レポヌトを公開する前に、タグ付けされたず思われるパラメヌタヌの仕様を泚意深く読む必芁があるずいうこずです。 さらに、そのような機胜を認識するこずで、開発者ずしお貎重な経隓を積むこずができたす。



別のケヌスがありたした。CSS3仕様に目を通し、境界線がどのように機胜するかの説明に出䌚いたした。 もちろん、私の手はくすんでいたので、この機胜をテストするこずにしたしたが、最新の単䞀のブラりザヌでは、読んだ仕様に埓っおコヌドをレンダリングしたせんでした。 バグレポヌトを蚭蚈しお公開したしたが、このレポヌトには、この機胜が仕様の最新の開発バヌゞョン぀たり、未公開から削陀されたずいう回答がありたした。 この話の教蚓は簡単です。バグを仕様ず比范するず、公開されおいるものの代わりにdevバヌゞョンを読みたす。



もちろん、すべおの人々ず同様に、りェブ開発者は愚かであるこずが起こりたす。 そしお、バグはバグではなく、䞍完党な仕様やコヌドの゚ラヌではなく、単に䞍泚意によるものであるこずがわかりたした。 ゚ラヌが発生しおいなくおも、1぀のJSコヌドを動䜜させるこずができなかったずきの䞍満を芚えおいたす。 結局、最近ブラりザでJavaScriptをオフにしお、再びオンにするのを忘れおいたこずがわかりたした。



私の緎習の䞭で最も屈蟱的なケヌスを芚えおいたす。 バグレポヌトを䜜成し、Operaのバグトラッカヌに公開したした。これは、 pointer-events



が機胜せず、 select



に囲たれおいる状況を説明したものです。



たれに、バグは実際にはバグですが、特定のブラりザずは関係ありたせん。 マヌクアップ蚀語の仕様にも゚ラヌが含たれる堎合がありたす。 このようなバグは、1぀たたは別の仕様の開発者のWebサむトに報告する必芁がありたすCSSの堎合、 W3Cバグトラッカヌが必芁です。 そのような゚キゟチックな堎合でも、䞊蚘の指瀺はただ適甚可胜です。



最新のNightlyビルドでバグは修正されたしたか
ブラりザの「倜」バヌゞョンがただない堎合は、これを行う必芁がありたす。 最も人気のあるブラりザの最新の朜圚的に䞍安定なビルドのリストは次のずおりです。

明らかに、バグがブラりザの最新の倜間バヌゞョンに衚瀺されない堎合、バグレポヌトを行うべきではありたせん。 安定版リリヌスブランチで修正されるたで埅っおください。 蚀い換えれば、必芁なのは忍耐力、若いパダワンだけです。



同様のバグレポヌトはすでに䜜成されおいたすか
仕様を泚意深く読み盎し、ナむトビルドをむンストヌルした埌でもバグがあるず確信しおいる堎合は、バグトラッカヌを調べお問題を説明するバグレポヌトを䜜成する必芁がありたす。 バグトラッカヌの怜玢゚ンゞンが、未確認および修正枈みのバグを含むすべおの結果を提䟛するこずを確認しおください。



レポヌトが芋぀からない堎合は、同矩語を䜿甚しお怜玢ク゚リを倉曎し、探しおいるレポヌトの可胜な名前をすべお考えおみおください。



レポヌトであなたの前に誰かを芋぀けたしたか 急いで離れないでください。䞀郚のバグトラッカヌBugzillaなどは投祚をサポヌトしおいたす。 開発者がバグレポヌトの評䟡を考慮するかどうかはわかりたせんが、そうであれば、高い評䟡は発芋された゚ラヌのより早い陀去に貢献したす。



異なる゚ンゞン、異なるバグトラッカヌ

各ブラりザヌには、ナヌザヌが発芋した゚ラヌを公開するために蚭蚈された独自のバグトラッカヌがありたす。

SafariずChromeは同じWebkit゚ンゞンに基づいおいるため、䞡方のブラりザヌにバグが衚瀺される堎合は、Webkitバグトラッカヌに曞き蟌む必芁がありたす。



1぀を陀いお、すべおのバグトラッカヌは公開されおいたすOpera Wizard。 バグレポヌトをOperaに送信できたすが、他のナヌザヌが送信したレポヌト、ナヌザヌのディスカッション、修正の進行状況にアクセスするこずはできたせん。 これらすべおぞのアクセスは、Operaのボランティアず埓業員のみが利甚できたす。 招埅状によっおのみ非公開契玄の締結によりボランティアになるこずができ、倧切な招埅状を取埗するこずは簡単な䜜業ではありたせん。 あなたが芋぀けたすべおの゚ラヌを送れば、おそらくあなたは幞運になるでしょう。



良いバグレポヌトを䜜成する

適切なレポヌトの最も重芁な郚分は、䞍芁なゎミからクリヌンアップされたコヌドです。 これが最も難しい郚分であり、残りは5分以内に完了したす。



短い説明
簡単な説明は、レポヌトの2番目に重芁なものです。 完璧なバランスを芋぀ける必芁がありたす。バグの簡単な説明は長すぎたり短すぎたりしおはいけたせん。 これが良い䟋です

body{display:table}



を䜿甚するず背景画像が消えbody{display:table}



Firefoxでの正しいセンタリング+スクロヌルのための䞀般的なCSSハック




さらに、短い説明にタグを远加しお、他のナヌザヌがレポヌトをすばやく簡単に芋぀けられるようにするこずができたす。 たずえば、最埌に、オペレヌティングシステム、タグ付きパラメヌタヌ、および原則ずしおあなたの心が望むものを割り圓おるこずができたす。䞻なこずは、タグがバグに盎接関連しおいるこずです。



基本情報
ここでは、原則ずしお、すべおが非垞に単玔です。 クリヌンなコヌドぞのリンクを提䟛し、実隓結果をバグず共有し、゚ラヌの考えられる原因に぀いお個人的な意芋をお聞かせください。 䞻なこずは、おしゃべりを枛らし、仕事を増やすこずです。 バグを遞ぶ前に錻を぀たんでいたずいう事実に぀いお話す必芁はありたせん。 ゚ラヌの調査に圹立たない情報は避けおください。



すべきでないこず

決しお、いく぀かの異なるバグに関する情報を1぀のレポヌトに決しお衚瀺しないでください。 これにより、今回の問題の解決に混乱ず远加の障害が生じたす。



2぀目は、䞀郚の゚ラヌがワヌクフロヌを悩たせたり、劚害したり、遅くしたりする可胜性があるこずを理解できたすが、無瀌は圹に立ちたせん。 特にレポヌトの議論では萜ち着いお、「これらのバカがどんなバグに぀いお話すこずができるか信じられない」



次は

通垞、数日たたは数週間のうちに、誰かがレポヌトのステヌタスを倉曎したす。 このレポヌトが二重であるず蚀われた堎合、心配しないでください、これは誰にでも起こりたす。 レポヌトのステヌタスが「確認枈み」になっおいる堎合、これは本圓に新しいバグを芋぀けたずいう良い兆候です。 時間が経぀に぀れお、ステヌタスは「送信枈み」に倉わりたす。これは、レポヌトがブラりザ開発者に盎接送信されたこずを意味し、おそらくすぐにこの゚ラヌを修正したす。 レポヌトが「固定」カテゎリで特定された堎合-おめでずうございたす。ブラりザの開発に貢献したした。






元の蚘事 ヘルプコミュニティレポヌトブラりザヌのバグ

投皿者 Lea Verou

発行日09/07/11






このテキストは、 Creative Commons Attribution-NonCommercial-ShareAlike 3.0ラむセンスの䞋でラむセンスされおいたす。

オリゞナルのラむセンスの䜜成ず保存を矩務付けお、このテキストを非営利目的でコピヌ、線集、䜿甚できたす。



All Articles