diff --git a/src/components/Connection/EPGLConnect/EpglForm.tsx b/src/components/Connection/EPGLConnect/EpglForm.tsx
index b609b1136282053bacc43b05080ccf67daf68807..5db5e7353000b1a1981392e734ae3cd9e7b02c74 100644
--- a/src/components/Connection/EPGLConnect/EpglForm.tsx
+++ b/src/components/Connection/EPGLConnect/EpglForm.tsx
@@ -84,7 +84,7 @@ const EpglForm = ({ hasCreatedAccount }: { hasCreatedAccount: boolean }) => {
   }, [account, lastEpglLogin, t])
 
   return (
-    <div className="connection-form">
+    <>
       {hasCreatedAccount && (
         <h2 className="connection-form-title eglgrandlyon text-20-bold">
           {t('auth.eglgrandlyon.with_account.title')}
@@ -104,6 +104,7 @@ const EpglForm = ({ hasCreatedAccount }: { hasCreatedAccount: boolean }) => {
           value={login}
           inputMode="numeric"
           error={Boolean(error)}
+          required
         />
 
         <TextField
@@ -115,6 +116,7 @@ const EpglForm = ({ hasCreatedAccount }: { hasCreatedAccount: boolean }) => {
           onChange={e => changePassword(e.target.value)}
           value={password}
           error={Boolean(error)}
+          required
         />
         <span>
           <StyledIconButton
@@ -153,7 +155,7 @@ const EpglForm = ({ hasCreatedAccount }: { hasCreatedAccount: boolean }) => {
           </Button>
         </div>
       </form>
-    </div>
+    </>
   )
 }
 
diff --git a/src/components/Connection/GRDFConnect/StepConsent.tsx b/src/components/Connection/GRDFConnect/StepConsent.tsx
index b6e982ad8a22c485107be4ce809c7bdb50d91e59..815fac3d3625010ac44758bbdc378c5519acc039 100644
--- a/src/components/Connection/GRDFConnect/StepConsent.tsx
+++ b/src/components/Connection/GRDFConnect/StepConsent.tsx
@@ -37,6 +37,7 @@ const StepConsent = ({
           onChange={e =>
             setFormConsent(prev => ({ ...prev, dataConsent: e.target.checked }))
           }
+          required
         />
         <span
           dangerouslySetInnerHTML={{
@@ -53,6 +54,7 @@ const StepConsent = ({
           onChange={e =>
             setFormConsent(prev => ({ ...prev, pceConfirm: e.target.checked }))
           }
+          required
         />
         <span>{t('auth.grdfgrandlyon.consentCheck2')}</span>
       </label>
diff --git a/src/components/Connection/SGEConnect/StepConsent.tsx b/src/components/Connection/SGEConnect/StepConsent.tsx
index d411ee838a4c8a6d2a144e0dfbe7fe1377798cc3..60ef55a22ab2166de20d9abd26df48de440ad618 100644
--- a/src/components/Connection/SGEConnect/StepConsent.tsx
+++ b/src/components/Connection/SGEConnect/StepConsent.tsx
@@ -31,6 +31,7 @@ const StepConsent = ({ sgeState, onChange }: StepConsentProps) => {
           className="inputCheckbox"
           onChange={e => onChange('dataConsent', e.target.checked)}
           checked={sgeState.dataConsent}
+          required
         />
         <span
           dangerouslySetInnerHTML={{
@@ -45,6 +46,7 @@ const StepConsent = ({ sgeState, onChange }: StepConsentProps) => {
           className="inputCheckbox"
           onChange={e => onChange('pdlConfirm', e.target.checked)}
           checked={sgeState.pdlConfirm}
+          required
         />
         <span
           dangerouslySetInnerHTML={{
diff --git a/src/components/Connection/SGEConnect/__snapshots__/StepConsent.spec.tsx.snap b/src/components/Connection/SGEConnect/__snapshots__/StepConsent.spec.tsx.snap
index 3b013e643b852ecda7e8fc260ed35bf4bc19ba74..15ee2a27708c1fc5068d9e81c4be12098ab43427 100644
--- a/src/components/Connection/SGEConnect/__snapshots__/StepConsent.spec.tsx.snap
+++ b/src/components/Connection/SGEConnect/__snapshots__/StepConsent.spec.tsx.snap
@@ -38,6 +38,7 @@ exports[`StepConsent component should be rendered correctly 1`] = `
       <input
         class="inputCheckbox"
         id="dataConsentSge"
+        required=""
         type="checkbox"
       />
       <span>
@@ -51,6 +52,7 @@ exports[`StepConsent component should be rendered correctly 1`] = `
       <input
         class="inputCheckbox"
         id="pdlConfirm"
+        required=""
         type="checkbox"
       />
       <span>
diff --git a/src/components/Connection/connection.scss b/src/components/Connection/connection.scss
index bde9ff1d3bb802b579c84895e838e9a8f4bc15fd..419384253c53adb1dde6a3ae8c6e2065d59dd94c 100644
--- a/src/components/Connection/connection.scss
+++ b/src/components/Connection/connection.scss
@@ -33,43 +33,45 @@
     margin: 0 auto 0.5rem auto;
     color: $white;
   }
+}
+
+// EGL
 
-  .connection-form-button {
+.connection-form-button {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  gap: 0.5rem;
+  button {
+    height: 2.5rem;
+    max-width: 22.5rem;
+    margin: 0;
+  }
+}
+.connection-form-connect-button {
+  button {
+    height: auto;
+  }
+  &.grdf {
+    margin-top: 2rem;
+  }
+  .connection-form-connect-button-content {
     display: flex;
-    flex-direction: column;
+    justify-content: center;
     align-items: center;
-    gap: 0.5rem;
-    button {
-      height: 2.5rem;
-      max-width: 22.5rem;
-      margin: 0;
+    width: 100%;
+    @media #{$large-phone} {
+      justify-content: left;
     }
-  }
-  .connection-form-connect-button {
-    button {
-      height: auto;
+    .connection-form-connect-button-content-icon {
+      margin: 0 0.5rem 0 0;
     }
-    &.grdf {
-      margin-top: 2rem;
-    }
-    .connection-form-connect-button-content {
+    .connection-form-connect-button-text {
       display: flex;
-      justify-content: center;
-      align-items: center;
-      width: 100%;
-      @media #{$large-phone} {
-        justify-content: left;
-      }
-      .connection-form-connect-button-content-icon {
-        margin: 0 0.5rem 0 0;
-      }
-      .connection-form-connect-button-text {
-        display: flex;
-        flex-direction: column;
-        align-items: flex-start;
-        text-align: left;
-        max-width: 19.5rem;
-      }
+      flex-direction: column;
+      align-items: flex-start;
+      text-align: left;
+      max-width: 19.5rem;
     }
   }
 }
@@ -119,7 +121,6 @@
       .MuiInputBase-root {
         max-width: 300px;
       }
-      
 
       /* Chrome, Safari, Edge, Opera */
       input::-webkit-outer-spin-button,
@@ -197,4 +198,3 @@
     }
   }
 }
-
diff --git a/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.tsx b/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.tsx
index 25fddf04484ebe5cf320a1a68d0cfa888c37d3e9..b4df18614208555d4ec3844c607ee57538dcbd3f 100644
--- a/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.tsx
+++ b/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.tsx
@@ -84,6 +84,7 @@ const ProfileTypeFormNumberSelection = ({
               className="inputNumberIncrements"
               value={answer.toString()}
               size="small"
+              disabled
             />
             <Button
               onClick={() => increment()}
diff --git a/src/components/Terms/TermsView.tsx b/src/components/Terms/TermsView.tsx
index 2d580cc4b81ff99acfc993e5c3a5a4d7b10f7993..3a49d735ba51c1973ff98dd76e12de600f248a13 100644
--- a/src/components/Terms/TermsView.tsx
+++ b/src/components/Terms/TermsView.tsx
@@ -51,6 +51,7 @@ const TermsView = () => {
                 className="inputCheckbox"
                 onChange={e => setDataConsentValidation(e.target.checked)}
                 checked={dataConsentValidation}
+                required
               />
               {t('dataShare.validDataConsent')}
             </label>
@@ -61,6 +62,7 @@ const TermsView = () => {
                 className="inputCheckbox"
                 onChange={e => setGCUValidation(e.target.checked)}
                 checked={GCUValidation}
+                required
               />
               <div>
                 <span>{t('dataShare.validCGU')}</span>
diff --git a/src/components/Terms/__snapshots__/TermsView.spec.tsx.snap b/src/components/Terms/__snapshots__/TermsView.spec.tsx.snap
index dca3c7f1da7cb73f6b9042d7c9f2fd641050a7f3..7652987e460702ec4bd09dd8ecc41dc71c248a0b 100644
--- a/src/components/Terms/__snapshots__/TermsView.spec.tsx.snap
+++ b/src/components/Terms/__snapshots__/TermsView.spec.tsx.snap
@@ -107,6 +107,7 @@ exports[`TermsView component should be rendered correctly 1`] = `
         <input
           class="inputCheckbox"
           id="dataConsent"
+          required=""
           type="checkbox"
         />
         dataShare.validDataConsent
@@ -118,6 +119,7 @@ exports[`TermsView component should be rendered correctly 1`] = `
         <input
           class="inputCheckbox"
           id="gcu"
+          required=""
           type="checkbox"
         />
         <div>
diff --git a/src/locales/fr.json b/src/locales/fr.json
index 0de0637301abb9c55da69e49380031e020048ebe..b7afb8a98f9f9972e7019f08c7586ece9deb6c31 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -206,8 +206,8 @@
       "consentLi2": "L'historique et le relevé de vos consommations au pas de temps 30 minutes",
       "consentLi3": "Les puissances maximales atteintes quotidiennement",
       "consentLi4": "Les données contractuelles (début de contrat et puissance souscrite)",
-      "consentCheck1": "Je consens à partager les données personnelles ci-dessus pour une durée d'<span>un\u00a0an</span>",
-      "consentCheck2": "J’atteste être le titulaire du point de livraison (PDL) renseigné à l’étape précédente"
+      "consentCheck1": "Je consens à partager les données personnelles ci-dessus pour une durée d'<span>un\u00a0an</span> *",
+      "consentCheck2": "J’atteste être le titulaire du point de livraison (PDL) renseigné à l’étape précédente *"
     },
     "grdfgrandlyon": {
       "title": "Ecolyo doit se connecter au gaz",
@@ -235,8 +235,8 @@
       "textConsent": "Afin de vous offrir des fonctionnalités de visualisation et d'analyse, Ecolyo a besoin des données suivantes\u00a0:",
       "consentLi1": "L'historique de vos consommations (jusqu’à 36 mois) et le relevé quotidien de vos consommations",
       "consentLi2": "Les données contractuelles (type de compteur, date de début de contrat)",
-      "consentCheck1": "Je consens à partager les données personnelles ci-dessus pour une durée d'<span>un\u00a0an</span>",
-      "consentCheck2": "J’atteste être le titulaire du point de livraison (PCE) renseigné à l’étape précédente",
+      "consentCheck1": "Je consens à partager les données personnelles ci-dessus pour une durée d'<span>un\u00a0an</span> *",
+      "consentCheck2": "J’atteste être le titulaire du point de livraison (PCE) renseigné à l’étape précédente *",
       "waiting": {
         "mailSent": "Un mail vous a été envoyé...",
         "mailDelay": "La réception du mail peut prendre 15min, l'envoi des mails se faisant tous les 1/4 d'heure",
@@ -694,12 +694,12 @@
     "part9": "Métropole de Lyon – Délégué à la Protection des Données - Direction des Assemblées, des Affaires Juridiques et des Assurances - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 ",
     "part10": "ou en ligne, au moyen du formulaire disponible à l'adresse suivante\u00a0: ",
     "link1": "<a href=\"https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/\">https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/</a>",
-    "validDataConsent": "Je consens au traitement de mes données tel que décrit ci-dessus.",
+    "validDataConsent": "Je consens au traitement de mes données tel que décrit ci-dessus. *",
     "validCGU": "Je valide les ",
     "validCGU_button": "Conditions Générales d’Utilisation",
     "validLegal": " du service et ai pris connaissance des ",
     "validLegal_button": "Mentions Légales",
-    "validLegal2": "de celui-ci.",
+    "validLegal2": "de celui-ci. *",
     "button_accept": "C'est parti !",
     "accessibility": {
       "button_accept": "Accepter les conditions générales d'utilisation"