diff --git a/locales/en.json b/locales/en.json
index 93f4d55fac252eab26d7a31b6a530e5b8d5f832f..a2abfd4b7763db3fceede39cbc1fb58d7db87723 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -20,6 +20,7 @@
   "submit.resource": "Publish",
   "title.new_resource_type": "Create a new type of resources",
   "label.new_resource_keyword": "Keyword",
+  "validation.name_no_more": "No more than 150 characters",
   "label.delete_resource": "Delete resource",
   "confirm.delete_resource": "Are you sure you wish to delete this resource ?",
   "label.download": "Download"
diff --git a/locales/fr.json b/locales/fr.json
index 52edfcdb8789829ee38fcaf22caf34b282018227..31094bdd7cb65b0a1c80928a2ae8d564f22d0085 100644
--- a/locales/fr.json
+++ b/locales/fr.json
@@ -20,6 +20,7 @@
   "submit.resource": "Publier",
   "title.new_resource_type": "Créer un nouveau type de ressources",
   "label.new_resource_keyword": "Mot-clé",
+  "validation.name_no_more": "Pas plus de 150 caractères",
   "label.delete_resource": "Supprimer la ressource",
   "confirm.delete_resource": "Etes vous sur de vouloir supprimer cette ressource ?",
   "label.download": "Télécharger"
diff --git a/solid-resource.js b/solid-resource.js
index f49d60f821fc36437c27aa9aa145c625c2ef5c8e..186cc04a241bcbd6ab6bfe42ca5253c8696be6e1 100644
--- a/solid-resource.js
+++ b/solid-resource.js
@@ -251,10 +251,10 @@ export class SolidResource extends SolidTemplateElement {
             class-link="segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal"
 
             label-keywords="${this.localize('label.resource_keywords')}"
-            label-name="${this.localize('label.resource_title')}"
+            label-name="${this.localize('label.resource_title')}*"
             label-img="${this.localize('label.resource_illustration')}"
-            label-type="${this.localize('label.resource_type')}"
-            label-shortdesc="${this.localize('label.short_description')}"
+            label-type="${this.localize('label.resource_type')}*"
+            label-shortdesc="${this.localize('label.short_description')}*"
             label-longdesc="${this.localize('label.long_description')}"
             label-name="${this.localize('label.resource_title')}"
             label-document="${this.localize('label.resource_document')}"
@@ -270,6 +270,12 @@ export class SolidResource extends SolidTemplateElement {
             widget-shortdesc="solid-form-textarea-label"
             widget-longdesc="solid-form-textarea-label"
 
+            required-shortdesc
+            required-name
+            required-type
+            pattern-name=".{1,150}"
+            title-name="${this.localize('validation.name_no_more')}"
+
             upload-url-img="${uploadDir}"
             upload-url-document="${uploadDir}"
             submit-button="${this.localize('submit.resource')}"