IEやFirefoxではこの不具合は起きないのですが、当サイトはMacユーザーの方も多いので改善を要求したところ、「ブラウザの不具合なので仕方がない、フォームに注意書きを書いておいて下さい」ということでした。
本当に改善は不可能なのでしょうか?
考えられる原因はなんなのでしょうか?
フォームはPHP+PostgreSQLです。
情報が少なく申し訳ありませんが、わかる範囲内でご回答頂けると幸いです。よろしくお願いします。
(1)原因としては
php+PostgreSQL特有の問題である可能性は低く
ブラウザの不具合というよりは、ブラウザの挙動が違うだけ。
(2)技術的には対応可能と思われる
safariではテキストエリアに対しての扱いと挙動が異なりますので
ページデザインと構造によっては大幅な改造が必要になるかもしれませんが
対応が完全に不可能という訳ではないでしょう。
(3)ただし、事実上不可の可能性は高い
(a)動作確認環境としてMacのsafariが含まれたいたかどうか?
(b)含まれていたとしてMacOSやsafariのバージョンの組み合わせはどれとどれか?
という点が特に重要になります。
対応OSや対応ブラウザを増やせば増やすほど
手間と時間(つまりは予算)が飛躍的に増大しますので
依頼側から特に指示しなかった場合、1つのOSバージョンとデフォルトのブラウザ
(普及度からWindowsXP+IE6が主なターゲット、少数派のMac+safariは非対応が多い)で
予算を組む場合が多いのですが契約時に説明はなかったのでしょうか?
説明がなかった場合は、予算規模に応じて双方話し合いでという事になりますが
複数OSで複数ブラウザとなると予算が倍になる可能性だってありますので
そうそうは簡単にいかない話だったりします。
(4)今回改善したとしても・・・
既存ブラウザのマイナーチェンジでも同様の症状を起こす可能性は否定できないので
動作確認したOSとブラウザのバージョンを明記しておくという消極的な方法が
実は一番実用的だったりはします。
以上、ご納得できる部分とご納得できない部分はあるかと思いますが参考まで・・・。
結論を先に書くと、改善は可能です。
Safariは、IEやFirefoxとは異なる独自のレンタリングエンジン「Webkit」を使っています。GoogleChromeも同じWebkitを用いているので、これが原因の可能性が高そうです。
となると、CSSかJavaScriptの書き方の問題と思われます。また、Flashなどのリッチコンテンツを使っているとすると、IE固有のActionScriptを使っている可能性があります。
いずれにしても、サーバサイド(PHPやPostgreSQL)の可能性は低いでしょう。
情報が少ないので何とも言えませんが、純粋にHTMLで書かれたフォームなら、JavaScriptでリアルタイムに入力文字数を数えたり、文字種のチェックを行っていませんか?
こういったJavaScriptの処理が、IEやFirefoxでは正常に動くものの、Safariでは正常に動いていないというケースを見かけます。
解決策ですが、SafariやGoogleChromeでも正常に動作するようにすることは、技術的に難しいことではありません。入力チェックであれば、Ajaxフレームワークを使えば実現できます。ただ、製作者側にそのノウハウがあるかどうかがキーになります。
まずは、契約書や要件定義書において、SafariやGoogleChromeでも動作することを明示していたかどうかを確認してください。IEやFirefoxでの動作を限定していない内容でも結構です。その場合、製作者側が瑕疵担保責任を負うことになります。つまり、製作者側は無償で修理しなければなりません。
kn1967 さんも回答されていますが、要件定義では、クライアント側の以下の要件を明記することをお勧めします。
なお、デザインだけでなく技術にも明るい製作者であればOSやブラウザの違いを吸収するノウハウを持ってますし、違いをチェックできるテスト環境も揃っているものです。ブラウザの種類が増えたからといって製作見積が増えるような業者さんは敬遠した方が良いでしょう。
ありがとうございます。
今回頂いたご意見を参考に、もう一度製作業者の方と話し合いをしてみようと思います。
どうもありがとうございました。
ありがとうございます。
つまり対応は不可能ではないものの、
完璧な解決策と言えるものではなく、
また予算的にもかなりかかりそうだということですね。
納得しました。