Provide a Rich Text Editor (RTE) component

Description

I would like a re-usable component that allows a user to provide or edit content through a "what you see is what you get" (WYSIWYG) editing experience.

I would like to use this component in Jira, Confluence, and Bitbucket apps.

Environment

None

QA Kickoff Check-In

Usage described in documentation
Demonstration of all states
Interactive state (screen readers)
Visual regression tests
Unit tests
Navigation (only keyboard / only mouse)
Component render legibly

QA Demo Check-Out

P2 plugin
Browsers (Edge/IE11/Firefox/Chrome/Safari)
Resizing
Zoom in/out
Navigation (Keyboard/Mouse)
Focus
Element status (At Rest/Pressed/Selected/Read Only/Disabled)
Cursors
Tooltips
Audio

Activity

Show:
Chris "Daz" Darroch
September 10, 2020, 11:44 AM

There are several challenging aspects to providing a re-usable RTE.

The primary two concerns are: (1) the kind of content a user can provide (e.g., bold, italics, images, attachments, etc.) and (2) the format this content is stored in.

Jira, Confluence, and Bitbucket all have different content formats under the hood.

The lowest common denominator is “wiki markup” - this format is still used to some extent in each product, though I’m not sure whether it’s the base format that’s stored in each product’s database or whether it’s only an interpreted layer in each product.

For basic text styles, this could be sufficient. However, for more complex content such as images, this gets trickier, since each product has a different approach to storing attachments and related info.

A secondary concern is maintenance. RTE components require active investment and maintenance to keep them working across browsers.

Building an RTE from scratch would be foolhardy. Borrowing an existing one and making it work across each product is the only sane route… but even that has difficulties because of the 2 primary concerns.

Assignee

Michal Samujlo

Reporter

Chris "Daz" Darroch

Labels

None

Changelog entry text

None

Needs Doc

None

Priority

Minor
Configure