diff --git a/projects/common/models/elements/element.ts b/projects/common/models/elements/element.ts
index ee48a37301d58a825188ce8b5bab60d149366eeb..8ce263e0268ad3427a870a0a2ac62d469b4025d9 100644
--- a/projects/common/models/elements/element.ts
+++ b/projects/common/models/elements/element.ts
@@ -198,7 +198,6 @@ export abstract class InputElement extends UIElement implements InputElementProp
 
 export interface KeyInputElementProperties {
   inputAssistancePreset: InputAssistancePreset;
-  inputAssistanceCustomKeys: string;
   inputAssistancePosition: 'floating' | 'right';
   inputAssistanceFloatingStartPosition: 'startBottom' | 'endCenter';
   showSoftwareKeyboard: boolean;
@@ -206,6 +205,7 @@ export interface KeyInputElementProperties {
 }
 
 export interface TextInputElementProperties extends KeyInputElementProperties, InputElementProperties {
+  inputAssistanceCustomKeys: string;
   restrictedToInputAssistanceChars: boolean;
   hasArrowKeys: boolean;
   hasBackspaceKey: boolean;
@@ -214,7 +214,6 @@ export interface TextInputElementProperties extends KeyInputElementProperties, I
 function isValidKeyInputProperties(blueprint?: KeyInputElementProperties): boolean {
   if (!blueprint) return false;
   return blueprint.inputAssistancePreset !== undefined &&
-    blueprint.inputAssistanceCustomKeys !== undefined &&
     blueprint.inputAssistancePosition !== undefined &&
     blueprint.inputAssistanceFloatingStartPosition !== undefined &&
     blueprint.showSoftwareKeyboard !== undefined &&
@@ -224,6 +223,7 @@ function isValidKeyInputProperties(blueprint?: KeyInputElementProperties): boole
 function isValidTextInputElementProperties(blueprint?: TextInputElementProperties): boolean {
   if (!blueprint) return false;
   return blueprint.restrictedToInputAssistanceChars !== undefined &&
+    blueprint.inputAssistanceCustomKeys !== undefined &&
     blueprint.hasArrowKeys !== undefined &&
     blueprint.hasBackspaceKey !== undefined &&
     isValidKeyInputProperties(blueprint);
@@ -264,7 +264,7 @@ export abstract class TextInputElement extends InputElement implements TextInput
       if (element?.hasArrowKeys) this.hasArrowKeys = element.hasArrowKeys;
       if (element?.hasBackspaceKey) this.hasBackspaceKey = element.hasBackspaceKey;
       if (element?.showSoftwareKeyboard) this.showSoftwareKeyboard = element.showSoftwareKeyboard;
-      if (element?.addInputAssistanceToKeyboard) this.softwareKeyboardShowFrench = element.addInputAssistanceToKeyboard;
+      if (element?.addInputAssistanceToKeyboard) this.addInputAssistanceToKeyboard = element.addInputAssistanceToKeyboard;
     }
   }
 }
diff --git a/projects/common/models/elements/input-elements/math-table.ts b/projects/common/models/elements/input-elements/math-table.ts
index 03a84649876d6abdc7c320c070e001d2717b2720..3167081bddbefadc4ae6ec8cb8c2b41b7473bac7 100644
--- a/projects/common/models/elements/input-elements/math-table.ts
+++ b/projects/common/models/elements/input-elements/math-table.ts
@@ -24,12 +24,8 @@ export class MathTableElement extends UIElement implements MathTableProperties,
   result: string = '';
   resultHelperRow: string = '';
   inputAssistancePreset: InputAssistancePreset = null;
-  inputAssistanceCustomKeys: string = '';
   inputAssistancePosition: 'floating' | 'right' = 'floating';
   inputAssistanceFloatingStartPosition: 'startBottom' | 'endCenter' = 'startBottom';
-  restrictedToInputAssistanceChars: boolean = false;
-  hasArrowKeys: boolean = false;
-  hasBackspaceKey: boolean = false;
   showSoftwareKeyboard: boolean = false;
   addInputAssistanceToKeyboard: boolean = false;
   variableLayoutOptions: {
@@ -59,7 +55,6 @@ export class MathTableElement extends UIElement implements MathTableProperties,
       this.variableLayoutOptions = { ...element.variableLayoutOptions };
       this.styling = { ...element.styling };
       this.inputAssistancePreset = element.inputAssistancePreset;
-      this.inputAssistanceCustomKeys = element.inputAssistanceCustomKeys;
       this.inputAssistancePosition = element.inputAssistancePosition;
       this.inputAssistanceFloatingStartPosition = element.inputAssistanceFloatingStartPosition;
       this.showSoftwareKeyboard = element.showSoftwareKeyboard;
diff --git a/projects/common/models/elements/property-group-interfaces.ts b/projects/common/models/elements/property-group-interfaces.ts
index 9fef7de47e54b3d1c9c974860549d47943d9696d..1b686f287d341a4f190745c18061ba30a944dab4 100644
--- a/projects/common/models/elements/property-group-interfaces.ts
+++ b/projects/common/models/elements/property-group-interfaces.ts
@@ -120,7 +120,10 @@ export abstract class PropertyGroupValidators {
 
   static isValidKeyInputElementProperties(blueprint: KeyInputElementProperties): boolean {
     if (!blueprint) return false;
-    return true;
+    return blueprint.inputAssistancePreset !== undefined &&
+      blueprint.inputAssistancePosition !== undefined &&
+      blueprint.inputAssistanceFloatingStartPosition &&
+      blueprint.showSoftwareKeyboard !== undefined;
   }
 
   static isValidBasicStyles(blueprint: BasicStyles): boolean {
@@ -237,11 +240,10 @@ export abstract class PropertyGroupGenerators {
   static generateKeyInputProps(properties: Partial<KeyInputElementProperties> = {}): KeyInputElementProperties {
     return {
       inputAssistancePreset: properties.inputAssistancePreset !== undefined ? properties.inputAssistancePreset as InputAssistancePreset : null,
-      inputAssistanceCustomKeys: properties.inputAssistanceCustomKeys !== undefined ? properties.inputAssistanceCustomKeys as string : '',
       inputAssistancePosition: properties.inputAssistancePosition !== undefined ? properties.inputAssistancePosition as 'floating' | 'right' : 'floating',
       inputAssistanceFloatingStartPosition: properties.inputAssistanceFloatingStartPosition !== undefined ? properties.inputAssistanceFloatingStartPosition as 'startBottom' | 'endCenter' : 'startBottom',
       showSoftwareKeyboard: properties.showSoftwareKeyboard !== undefined ? properties.showSoftwareKeyboard as boolean : false,
-      addInputAssistanceToKeyboard: properties.addInputAssistanceToKeyboard !== undefined ? properties.addInputAssistanceToKeyboard as boolean : false
+      addInputAssistanceToKeyboard: properties.addInputAssistanceToKeyboard !== undefined ? properties.addInputAssistanceToKeyboard : false
     };
   }
 }
diff --git a/projects/player/src/app/app.module.ts b/projects/player/src/app/app.module.ts
index f8260a89aa07c4af9ebec4e1936d6932bbcecb2d..9270deaea6dd08ef197f53a586942f9a6ae906cf 100644
--- a/projects/player/src/app/app.module.ts
+++ b/projects/player/src/app/app.module.ts
@@ -52,6 +52,7 @@ import { UnitComponent } from './components/unit/unit.component';
 import { PageScrollButtonComponent } from './components/page-scroll-button/page-scroll-button.component';
 import { ExternalAppGroupElementComponent } from
   './components/elements/external-app-group-element/external-app-group-element.component';
+import { InputAssistanceCustomKeysPipe } from './pipes/input-assistance-custom-keys.pipe';
 
 @NgModule({
   declarations: [
@@ -84,7 +85,8 @@ import { ExternalAppGroupElementComponent } from
     SectionVisibilityHandlingDirective,
     UnitComponent,
     PageScrollButtonComponent,
-    ExternalAppGroupElementComponent
+    ExternalAppGroupElementComponent,
+    InputAssistanceCustomKeysPipe
   ],
   imports: [
     BrowserModule,
diff --git a/projects/player/src/app/components/floating-keypad/floating-keypad.component.html b/projects/player/src/app/components/floating-keypad/floating-keypad.component.html
index 530632047c470ef3e0f300e39b8c604ca442307c..8ead38d6ddd5f64876f1c84623760fc5389d3ef6 100644
--- a/projects/player/src/app/components/floating-keypad/floating-keypad.component.html
+++ b/projects/player/src/app/components/floating-keypad/floating-keypad.component.html
@@ -12,10 +12,10 @@
       [inputElement]="keypadService.inputElement"
       [position]="keypadService.position"
       [preset]="keypadService.preset"
-      [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys"
-      [restrictToAllowedKeys]="keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars"
-      [hasArrowKeys]="keypadService.elementComponent.elementModel.hasArrowKeys"
-      [hasBackspaceKey]="keypadService.elementComponent.elementModel.hasBackspaceKey"
+      [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys | inputAssistanceCustomKeys"
+      [restrictToAllowedKeys]="!!keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars"
+      [hasArrowKeys]="!!keypadService.elementComponent.elementModel.hasArrowKeys"
+      [hasBackspaceKey]="!!keypadService.elementComponent.elementModel.hasBackspaceKey"
       [hasReturnKey]="keypadService.elementComponent.elementModel | hasReturnKey"
       (backSpaceClicked)="keypadService.deleteCharacters.emit(true)"
       (keyClicked)="keypadService.enterKey.emit($event)"
diff --git a/projects/player/src/app/components/layouts/player-layout/player-layout.component.html b/projects/player/src/app/components/layouts/player-layout/player-layout.component.html
index c5b795903f7a9740c89f2c4cf74ca3c669fdf98f..a601a230735cbecd8e54afde8c05716143ffbcab 100644
--- a/projects/player/src/app/components/layouts/player-layout/player-layout.component.html
+++ b/projects/player/src/app/components/layouts/player-layout/player-layout.component.html
@@ -10,10 +10,10 @@
           [inputElement]="keypadService.inputElement"
           [position]="keypadService.position"
           [preset]="keypadService.preset"
-          [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys"
-          [restrictToAllowedKeys]="keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars"
-          [hasArrowKeys]="keypadService.elementComponent.elementModel.hasArrowKeys"
-          [hasBackspaceKey]="keypadService.elementComponent.elementModel.hasBackspaceKey"
+          [customKeys]="keypadService.elementComponent.elementModel.inputAssistanceCustomKeys | inputAssistanceCustomKeys"
+          [restrictToAllowedKeys]="!!keypadService.elementComponent.elementModel.restrictedToInputAssistanceChars"
+          [hasArrowKeys]="!!keypadService.elementComponent.elementModel.hasArrowKeys"
+          [hasBackspaceKey]="!!keypadService.elementComponent.elementModel.hasBackspaceKey"
           [hasReturnKey]="keypadService.elementComponent.elementModel | hasReturnKey"
           (backSpaceClicked)="keypadService.deleteCharacters.emit(true)"
           (keyClicked)="keypadService.enterKey.emit($event)"
@@ -27,7 +27,7 @@
       (@keyboardSlideInOut.done)="keyboardService.scrollElement()"
       [addInputAssistanceToKeyboard]="keyboardService.addInputAssistanceToKeyboard"
       [preset]="keyboardService.preset"
-      [customKeys]="keyboardService.elementComponent.elementModel.inputAssistanceCustomKeys"
+      [customKeys]="keyboardService.elementComponent.elementModel.inputAssistanceCustomKeys | inputAssistanceCustomKeys"
       (keyClicked)="keyboardService.enterKey.emit($event)"
       (backspaceClicked)="keyboardService.deleteCharacters.emit(true)">
   </aspect-keyboard>
diff --git a/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.spec.ts b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7bf49f1e53d82ff817142c107c907184bf0033ec
--- /dev/null
+++ b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.spec.ts
@@ -0,0 +1,8 @@
+import { InputAssistanceCustomKeysPipe } from './input-assistance-custom-keys.pipe';
+
+describe('InputAssistanceCustomKeysPipe', () => {
+  it('create an instance', () => {
+    const pipe = new InputAssistanceCustomKeysPipe();
+    expect(pipe).toBeTruthy();
+  });
+});
diff --git a/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.ts b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.ts
new file mode 100644
index 0000000000000000000000000000000000000000..722d659c482f78b13d97abac09f9133fa3779031
--- /dev/null
+++ b/projects/player/src/app/pipes/input-assistance-custom-keys.pipe.ts
@@ -0,0 +1,10 @@
+import { Pipe, PipeTransform } from '@angular/core';
+
+@Pipe({
+  name: 'inputAssistanceCustomKeys'
+})
+export class InputAssistanceCustomKeysPipe implements PipeTransform {
+  transform(keys: unknown): string {
+    return keys as string;
+  }
+}