ユーザーが記事を作成できるwikiスタイルのアプリケーションがあります。最近、一部のユーザーは、Microsoft Word、Excel、または特定のWebブラウザーなどのアプリケーションからのリッチテキストおよびフォーマットのコピーをエディターがサポートしていないと不満を言っています。
そのサポートを追加したくない理由(私は実際に「機能」を意図的に無効にした)は、送信された入力がどれほど汚いためです。たとえばMicrosoft Wordからコピーすると、多くのHTMLタグが追加されます。
これを無効にするのは間違っていますか?リッチコピー&ペーストを有効または無効にすることの長所と短所は何ですか。
あなたが尋ねる必要がある質問は:
リッチテキストの貼り付けを有効にすると、アプリケーションに価値が追加されますか?
ユーザーを追加しますか?ユーザーの維持に役立ちますか?それによって生産性が向上しますか?等.
答えが「はい」の場合は、コストと比較検討する必要があります。これは、入力を無害化するために必要な労力と、入力を無害にせず、データベースに「汚い」テキストが含まれている、または顧客を失うコストです。
合計が正になる場合は、この機能を実装する必要があります。
リッチテキストの貼り付けを有効にすると、UXが向上します。ユーザーのテキストは、満足のいく形式になっているため、ユーザーがテキストに何もしなくても、見栄えがよくなります。現在の実装で行われる追加の「再フォーマット」手順はありません。もちろん、一部のユーザーは、プレーンテキストとして貼り付けて再フォーマットする機能を必要とするため、この機能はオプションでなければなりません。
私が使用しているWebアプリケーションで、Office素材を貼り付けると、いくつかの重大な問題(ページ全体を壊す埋め込みスタイルシートを含む)が発生しました。しかし、これは実際には貼り付けの起訴ではありません...私の推奨は貼り付けを許可することです。ただし、送信されたHTMLを後処理し、許可されているHTMLタグ以外のすべてを削除します。特に、mso属性、<style>、および<script>タグを必ず削除してください。個人的にはもっと遠くへ行きます。基本的なHTMLタグ(<p>、<h?>、<strong>、<b>、<ul>、<li>、<br/>など)を除いてすべて削除し、スタイル、ID、クラスをすべてクリアします完全に属性。
これにより、HTMLに貼り付けることができますが、特定のフォント、マージン、div、スパンなどのリクエストは削除されます。失われたフォーマットは、必要に応じて簡単に置き換えることができ、これにより(デフォルトで)貼り付けられたすべてのコンテンツが標準のスタイルシートに準拠します。
許可されるコンテンツの境界線をどこに描くかは自由に決定できますが、これは通常両方の関係者を満足させるフォーマットの大規模なブロックの優れた代替手段であることがわかりました。この方法で私が目にした唯一の重大な損失は、段落オプション(マージン、行間)とフォント...ですが、この損失のため、最終結果(一貫したフォーマットのコンテンツ)は優れていると思います。
一般に、これはクライアントが問題ではなく必要なソリューションを説明する例だと思います。たとえば、WYSIWYG、「変更の追跡」、ディスカッションのためにドキュメントを送信する機能など、いくつかの便利な機能があるため、クライアントはWordを使用してWebコンテンツをタイプセットすると想定します。
彼らが本当に必要としているのは、彼らがwiki自体でコンテンツのドラフトを作成し、ライブで表示できるようにするためのツールを時間をかけて開発することです。すべてのタイプ処理のプレビュー。柔軟なドラフト状態を提供し、簡単なディスカッションとレビューを可能にし、Webアプリで「変更の追跡」のようなものを取得するためのニースの「差分」インターフェースさえも可能にします。
やりすぎかもしれません。ここで最も簡単な問題は、WordがWebのcontentEditable
フィールドに貼り付けられたときにコピーされたテキストをHTMLに変換する自動ペーストボード処理を行わないようにする方法を見つけることです。 RTFフォーマットで入力を多かれ少なかれ得ることができるなら、狂ったフォーマットタグの範囲は減らされるべきです。
私はあなたの決定に同意しますが、ユーザーが本当にフォーマットを必要とする場合は、それを有効にする必要があります。
たとえば、製品の調査研究の募集に役立つアプリケーションを作成しました。臨床試験のために送信されたメッセージは、レビューおよび承認されなければならず、承認されたのと同じスタイルおよびフォーマットで送信されなければなりませんでした。
私はこれを可能にするためにTinyMCEを使用しましたが、それは頭痛の種であり、多くの人々がそれを「Wordからの自動フォーマット」機能と考えているにもかかわらず、それは非常に一貫性がありませんでした。 :)
ここにいくつかの長所があります: