diff --git a/packages/component-submit/src/components/Declarations.js b/packages/component-submit/src/components/Declarations.js
index c7e08e81ffc4ed4a6645e689c6dd09924867db75..0be709c5686ec531b263d79b1579296bc2e768f8 100644
--- a/packages/component-submit/src/components/Declarations.js
+++ b/packages/component-submit/src/components/Declarations.js
@@ -2,6 +2,7 @@ import React from 'react'
 import classnames from 'classnames'
 import { FormSection, Field } from 'redux-form'
 import { YesOrNo } from 'xpub-ui'
+import { required } from '../lib/validators'
 import classes from './Declarations.local.css'
 
 const Declarations = ({ journal }) => (
@@ -17,6 +18,8 @@ const Declarations = ({ journal }) => (
 
         <Field
           name={question.id}
+          required
+          validate={[required]}
           component={props => <YesOrNo inline={true} {...props.input}/>}/>
       </div>
     ))}
diff --git a/packages/component-submit/src/components/Metadata.js b/packages/component-submit/src/components/Metadata.js
index 5248a19f119bcdee767bdb6cbea27fba002bfce9..288156a660cf6fd3b319eef5ab0642f2ab67c646 100644
--- a/packages/component-submit/src/components/Metadata.js
+++ b/packages/component-submit/src/components/Metadata.js
@@ -10,6 +10,7 @@ const Metadata = ({ journal, validators }) => (
     <div className={classes.section} id="metadata.title">
       <Field
         name="title"
+        required
         validate={[minChars(20), maxChars(500)]}
         component={props =>
           <ValidatedField {...props.meta}>
@@ -24,6 +25,7 @@ const Metadata = ({ journal, validators }) => (
     <div className={classes.section} id="metadata.abstract">
       <Field
         name="abstract"
+        required
         validate={[minChars(100), maxChars(5000)]}
         component={props =>
           <ValidatedField {...props.meta}>
@@ -39,6 +41,7 @@ const Metadata = ({ journal, validators }) => (
       <div className={classes.label}>Authors</div>
       <Field
         name="authors"
+        required
         validate={[minSize(1)]}
         component={props =>
           <ValidatedField {...props.meta}>
@@ -53,6 +56,7 @@ const Metadata = ({ journal, validators }) => (
       <div className={classes.label}>Keywords</div>
       <Field
         name="keywords"
+        required
         validate={[minSize(1)]}
         component={props =>
           <ValidatedField {...props.meta}>
@@ -67,7 +71,8 @@ const Metadata = ({ journal, validators }) => (
       <div className={classes.label}>Type of article</div>
       <Field
         name="articleType"
-        warn={[required]}
+        required
+        validate={[required]}
         component={props =>
           <ValidatedField {...props.meta}>
             <Menu options={journal.articleTypes} {...props.input}/>
@@ -79,6 +84,7 @@ const Metadata = ({ journal, validators }) => (
       <div className={classes.label}>Section</div>
       <Field
         name="articleSection"
+        required
         validate={[required]}
         component={props =>
           <ValidatedField {...props.meta}>
diff --git a/packages/component-submit/src/components/Notes.js b/packages/component-submit/src/components/Notes.js
index e33cfa3788061ab9070ebe7ca1576ca173f7c1e1..e9020e1e0c76e02f22683df2c971c78f0ab18e04 100644
--- a/packages/component-submit/src/components/Notes.js
+++ b/packages/component-submit/src/components/Notes.js
@@ -2,6 +2,7 @@ import React from 'react'
 import { FormSection, Field } from 'redux-form'
 import { NoteEditor } from 'xpub-edit'
 import { ValidatedField } from 'xpub-ui'
+import { required } from '../lib/validators'
 import classes from './Metadata.local.css'
 
 const Notes = () => (
@@ -9,6 +10,7 @@ const Notes = () => (
     <div className={classes.section} id="notes.fundingAcknowledgement">
       <Field
         name="fundingAcknowledgement"
+        validate={[required]}
         component={props =>
           <ValidatedField {...props.meta}>
             <NoteEditor