diff --git a/webapp/src/components/cardDetail/cardDetail.tsx b/webapp/src/components/cardDetail/cardDetail.tsx
index fffd1a487..55de8c5d8 100644
--- a/webapp/src/components/cardDetail/cardDetail.tsx
+++ b/webapp/src/components/cardDetail/cardDetail.tsx
@@ -93,6 +93,7 @@ const CardDetail = (props: Props): JSX.Element|null => {
}}
onCancel={() => setTitle(props.cardTree.card.title)}
readonly={props.readonly}
+ spellCheck={true}
/>
{/* Property list */}
diff --git a/webapp/src/components/content/__snapshots__/checkboxElement.test.tsx.snap b/webapp/src/components/content/__snapshots__/checkboxElement.test.tsx.snap
index 35c899993..a3692977b 100644
--- a/webapp/src/components/content/__snapshots__/checkboxElement.test.tsx.snap
+++ b/webapp/src/components/content/__snapshots__/checkboxElement.test.tsx.snap
@@ -13,6 +13,7 @@ exports[`components/content/CheckboxElement should match snapshot 1`] = `
@@ -33,6 +34,7 @@ exports[`components/content/CheckboxElement should match snapshot on change titl
@@ -57,6 +59,7 @@ exports[`components/content/CheckboxElement should match snapshot on read only 1
class="Editable undefined"
placeholder="Edit text..."
readonly=""
+ spellcheck="true"
title="test-title"
value="test-title"
/>
@@ -77,6 +80,7 @@ exports[`components/content/CheckboxElement should match snapshot on toggle 1`]
diff --git a/webapp/src/components/content/checkboxElement.tsx b/webapp/src/components/content/checkboxElement.tsx
index 11239766e..56e9afb39 100644
--- a/webapp/src/components/content/checkboxElement.tsx
+++ b/webapp/src/components/content/checkboxElement.tsx
@@ -52,6 +52,7 @@ const CheckboxElement = React.memo((props: Props) => {
mutator.updateBlock(newBlock, block, intl.formatMessage({id: 'ContentBlock.editCardCheckboxText', defaultMessage: 'edit card text'}))
}}
readonly={readonly}
+ spellCheck={true}
/>
)
diff --git a/webapp/src/components/kanban/kanbanColumnHeader.tsx b/webapp/src/components/kanban/kanbanColumnHeader.tsx
index bb8841ba8..f6e1e7c64 100644
--- a/webapp/src/components/kanban/kanbanColumnHeader.tsx
+++ b/webapp/src/components/kanban/kanbanColumnHeader.tsx
@@ -104,6 +104,7 @@ export default function KanbanColumnHeader(props: Props): JSX.Element {
setGroupTitle(group.option.value)
}}
readonly={props.readonly}
+ spellCheck={true}
/>
}
diff --git a/webapp/src/components/markdownEditor.tsx b/webapp/src/components/markdownEditor.tsx
index 863c0f355..3e283de13 100644
--- a/webapp/src/components/markdownEditor.tsx
+++ b/webapp/src/components/markdownEditor.tsx
@@ -145,6 +145,8 @@ const MarkdownEditor = (props: Props): JSX. Element => {
toolbar: false,
status: false,
spellChecker: false,
+ inputStyle: 'contenteditable',
+ nativeSpellcheck: true,
minHeight: '10px',
shortcuts: {
toggleStrikethrough: 'Cmd-.',
diff --git a/webapp/src/components/propertyValueElement.tsx b/webapp/src/components/propertyValueElement.tsx
index 5e2d5abd4..4b38e586a 100644
--- a/webapp/src/components/propertyValueElement.tsx
+++ b/webapp/src/components/propertyValueElement.tsx
@@ -130,6 +130,7 @@ const PropertyValueElement = (props:Props): JSX.Element => {
onSave={() => mutator.changePropertyValue(card, propertyTemplate.id, value)}
onCancel={() => setValue(propertyValue)}
validator={(newValue) => validateProp(propertyTemplate.type, newValue)}
+ spellCheck={propertyTemplate.type === 'text'}
/>
)
}
diff --git a/webapp/src/components/table/tableRow.tsx b/webapp/src/components/table/tableRow.tsx
index 5b4629bb7..0988e294b 100644
--- a/webapp/src/components/table/tableRow.tsx
+++ b/webapp/src/components/table/tableRow.tsx
@@ -92,6 +92,7 @@ const TableRow = React.memo((props: Props) => {
}}
onCancel={() => setTitle(card.title)}
readonly={props.readonly}
+ spellCheck={true}
/>
diff --git a/webapp/src/components/viewHeader/viewHeader.tsx b/webapp/src/components/viewHeader/viewHeader.tsx
index 5cc5fcd84..d580acfd2 100644
--- a/webapp/src/components/viewHeader/viewHeader.tsx
+++ b/webapp/src/components/viewHeader/viewHeader.tsx
@@ -65,6 +65,7 @@ const ViewHeader = React.memo((props: Props) => {
onChange={setViewTitle}
saveOnEsc={true}
readonly={props.readonly}
+ spellCheck={true}
/>
}/>
diff --git a/webapp/src/components/viewTitle.tsx b/webapp/src/components/viewTitle.tsx
index 2633fc9e6..8064d683a 100644
--- a/webapp/src/components/viewTitle.tsx
+++ b/webapp/src/components/viewTitle.tsx
@@ -83,6 +83,7 @@ const ViewTitle = React.memo((props: Props) => {
onSave={() => mutator.changeTitle(board, title)}
onCancel={() => setTitle(props.board.title)}
readonly={props.readonly}
+ spellCheck={true}
/>
diff --git a/webapp/src/widgets/__snapshots__/propertyMenu.test.tsx.snap b/webapp/src/widgets/__snapshots__/propertyMenu.test.tsx.snap
index bebe8be68..8e617cfcc 100644
--- a/webapp/src/widgets/__snapshots__/propertyMenu.test.tsx.snap
+++ b/webapp/src/widgets/__snapshots__/propertyMenu.test.tsx.snap
@@ -13,6 +13,7 @@ exports[`widgets/PropertyMenu should match snapshot 1`] = `
>
diff --git a/webapp/src/widgets/editable.tsx b/webapp/src/widgets/editable.tsx
index 553eb83d2..73d317ca0 100644
--- a/webapp/src/widgets/editable.tsx
+++ b/webapp/src/widgets/editable.tsx
@@ -11,6 +11,7 @@ type Props = {
className?: string
saveOnEsc?: boolean
readonly?: boolean
+ spellCheck?: boolean
validator?: (value: string) => boolean
onCancel?: () => void
@@ -90,6 +91,7 @@ const Editable = (props: Props, ref: React.Ref<{focus: (selectAll?: boolean) =>
}
}}
readOnly={props.readonly}
+ spellCheck={props.spellCheck}
/>
)
}
diff --git a/webapp/src/widgets/propertyMenu.tsx b/webapp/src/widgets/propertyMenu.tsx
index f35e87ea7..0df4897d1 100644
--- a/webapp/src/widgets/propertyMenu.tsx
+++ b/webapp/src/widgets/propertyMenu.tsx
@@ -75,6 +75,7 @@ const PropertyMenu = React.memo((props: Props) => {
e.stopPropagation()
}
}}
+ spellCheck={true}
/>