Last Update: Jan 22, 2024

Platform: (Web)

Documented by: Nikola Wenger

Intro

Why does form design matter?

Forms in SuccessFactors

A form is used to present data to the user and to allow users to enter data in a structured way. To look up data in forms or to fill out forms are a burden for any user and for some processes it’s a mandatory burden. Layout of forms, fields and proper message handling are essential to increase efficiency, ease of use, completion rate, reduce prone to errors.

Forms are means to an end. They are a necessary evil. Therefore, it is essential to craft forms in a way that users can complete the task with ease and efficiency. The longer the form the higher the frustration and lower the success rate due to length and complexity.

To design a form, follow the standard Fiori Guidelines. This guideline limits the options given in the Fiori Guideline to achieve more consistent forms across SuccessFactors.

SuccessFactors specific restrictions:

Horizontal vs. Vertical Label Layout

In SF we only use the Vertical Label Layout.

Width of Form Fields

The width of Form Fields should be defined by the content that is expected to be inside. Therefore we either have a fixed or a flexible size.

Fixed Width

Flexible Width

Those fields which have a fixed size cannot be changed in width. You do not need to adjust them. The Figma stencils already have the correct size.

Those fields which have a flexible size should be adjusted by the designer. The designer can choose between three sizes: S, M, Fill. The selection should be made based on the expected input length.

(144 px / 9 rem)

(288 px / 18 rem)

(Fills the available space in the column)

Bildschirmfoto 2023-08-17 um 19.16.21.png

Fixed Width

Bildschirmfoto 2023-08-17 um 19.16.42.png

Flexible Width

Finalizing Form Button State

Finalizing buttons at the end of forms should always be enabled even though some required fields are not filled yet. Clicking the button triggers a field validation which informs the user about missing required fields or other errors.

Advantages of keeping the button enabled:

Object Page vs. Wizard vs. Dialog

In the following guideline part you get information on when to use which container for your form design. Below you find a quick overview. Use the yellow buttons to navigate to the respective part inside this guideline to read more about one of the container options.

Object Page

Wizard

Dialog

☑️ Use if

☑️ Use if

☑️ Use if

Object Page

2
do
false

Use if

  • you have more than 8 fields
  • you need fields that open a select dialog or value help dialog or it is likely that this is needed in future enhancements
  • your user will use the form on a regular basis e.g. once a month
  • your user is an admin
dont
false

Don't use if

  • you have less than 8 fields. Use a dialog instead.
  • your user will use the form very infrequently e.g. once a year. Use a wizard instead.

Layout

When designing forms in an object page there are different layout options, which are described with example screenshots in the following.

Image
1
10.93; 5.12
Do not use a form title. Instead use the page title as its caption.
2
20.72; 5.12
Use group titles to capture the groups.
3
27.07; 5.52
One group should have not more than 8 fields.
4
20.45; 42.57
For big groups divide the group into several columns to achieve a balanced layout.
Image
1
19.21; 6.12
Use the form title as its caption.
2
25.03; 5.32
Use group titles to capture the groups.
3
31.11; 5.72
One group should have not more than 8 fields.
4
24.45; 37.00
For big groups divide the group into several columns to achieve a balanced layout.
Image
1
13.01; 4.93
Use multiple forms if you want to emphasize that some groups are very distinct.
2
19.90; 5.12
Use the form title as their captions.
3
27.07; 4.93
Use group titles to capture the groups inside each form.
4
66.59; 5.92
One group should have not more than 8 fields.
5
61.81; 36.60
For big groups divide the group into several columns to achieve a balanced layout.

Responsiveness

Fiori offers two options to implement a form: Column Layout or Responsive Grid Layout. In SF we limit this to only use the Column Layout, as this fits better with the vertical label layout.

The ColumnLayout control renders a form group in a column-based responsive way. You as a designer need to decide how many columns your from should have for the different screen sizes.

The number of columns for a langer screen size must not be smaller than the number of columns for the next smaller screen size. E.g. if you allow 3 columns in size L, there must be 3 or more columns in size XL.

Possible options for each screen size:

XL – max. 6 columns

L – max. 3 columns

M – max. 2 columns

S – 1 column

Use 3-4 columns dependent on the number of fields inside the groups.

If you have only 1 group use a dialog instead.

Use 3-6 columns dependent on the number of fields inside the groups.

If you have more than 6 groups consider dividing the form into multiple forms.

2
do
false

Allocate more columns for bigger groups

For an unbalanced number of fields between groups allocate more columns for the bigger group using the property "columnLayout".

dont
false

Avoid columns with only one field

The UI5 default allocates 2 columns for 2 groups. To achieve a balanced layout developers need to overwrite the default using the property "columnLayout".

2
do
false

Limit the field width to max. 500px / 31,25rem

To achieve this developers need to set a max-width for the form container. Make sure that the white background still stretches to align with content above or below the form.

dont
false

Don't allow endless stretch of fields

To improve the readability of a field it is recommended to limit the width of one field to a maximum of 500px / 31,25rem.

Wizard

2
do
false

Use if

  • you have more than 8 fields
  • you need fields that open a select dialog or value help dialog or it is likely that this is needed in future enhancements
  • your user will use the form very infrequently e.g. once a year
dont
false

Don't use if

  • you have less than 8 fields. Use a dialog instead.
  • your user will use the form on a regular basis e.g. once a month. Use an object page instead.

Grouping

2
do
false
Display one form group per wizard step
dont
false

Don't create complex forms within one wizard step

Don't create complex forms within one wizard step

Column Layout

2
do
false

Limit the number of columns

  • Limit the number of columns to 1-3 for screen size XL dependent on the number of fields. This improves efficiency because there is a clear reading order for the user.
  • Limit the field width to max 500px / 31,25rem to avoid endless stretch.
dont
false

Don't use more than 3 columns in one wizard step

  • One wizard step should have 8-10 fields
  • If you use more than 3 columns this will result in only 1-2 fields per columns which will affect readability and mess up the reading order.

Dialog

2
do
false

Use if

  • you have 8 fields or less
  • you don’t need fields that open a select dialog or value help dialog and it is not likely that this is needed in future enhancements
dont
false

Don't use if

  • you have a complex form with more than 8 fields. Use an object page or wizard instead.

Fixed dialog width of 32 rem

To increase consistency between form dialogs it is recommended to use a dialog width of 512px / 32rem. This results in a field width of 480px.

To improve readability of text it is recommended to have between 8 and 12 words within one line dependent on the language. The reason is that with more words in one line it is difficult for the eyes to find the next line without irritation. In our case this is especially relevant for text area fields.

Single column layout

2
do
false

Use single column layout

For simple forms it is recommended to use a single column layout. Your users will be faster in completion because they don't waste time understanding the form and reading order.

dont
false

Don't use multi column layout

Using multi column layout in this case would increase uncertainty about the reading order. Would you read from left to right or in a newspaper-like order?

Complex Forms

Progressive Disclosure

Under construction

In general, forms with up to about 20 editable fields or less have the best usability. Avoid larger forms.

Draft Handling

Draft Handling - Save as draft

“Save as draft” as specified by Fiori Guideline is essential and is applicable for create and edit use cases.

Rational:

“Save as draft” supports to increase efficiency and completion rate and reduces frustration.

This is especially true:

If users collect data that they usually don’t have at hand such as IDs that they need to look up. Users must not collect data somewhere before filling out the form. Users don’t want to come back and fill out the form again.

If users started to fill out a form with longer text field.

Special Fields

Combined Fields

It is possible to combine multiple fields into one label-value-pair. The pair of values should provide an easy recognition of the information pair (Street and Number)

It is recommended that both fields are stated in the visible label describing the expected input. You can concatenate them using "and" (Street and Number).

Invisible labels for each individual field are mandatory for the screen reader to announce the purpose of the focused field (Street + Input, Number + Input).

Sometimes users have multiple options in which format they want to provide an input. In this case you can combine a select input with the actual value field. The select input is to choose the input format of the value field. The value field type can change based on the selected input format.

: Active Period can be as of a date with open end or for a period with defined start and end date. The field type changes based on the selected input format:

Date Range -> Date Range Selection

As of Date -> Date Picker

2
do
false

Use a select input to choose the input format

  • Make sure that the label describes clearly what input is expected in both fields. Invisible labels are mandatory for both fields.
  • For screen readers annotate "Role: Group" around the combined fields so that they are announced as a group.
dont
false

Avoid combining other fields with radio button options

Combining other form fields with radio buttons

  • makes the UI cluttered and difficult to understand
  • can cause a11y issues

SF Figma Template

Duration Field

Image
1
8.71; 36.92
Placeholder should be either HH:mm or hh:mm.
2
8.80; 46.28
HH in uppercase is for values between 0-24 hours. hh in lowercase for values between 0-12 hours.
3
32.17; 37.12
Once user focuses inside the field the mask input will be shown
4
56.63; 37.12
The mask input prevents wrong user input.
5
68.58; 42.50
User does not need to enter leading zeros. When only typing 8 + Enter the system will automatically add the zeros.
6
82.44; 36.72
State with typed duration.

SF Duration Formatting

SF Figma Template

Fiori Mask Input

Single Attachment

Image
1
14.17; 30.60
No file uploaded. Through clicking the "Browse" button the file explorer opens and users can select a file. Please use the same placeholder if possible.
Users can also upload a file using drag and drop into the field.
2
32.55; 30.01
File is selected. Automatic uploading is started. When taking more than 1 minute, a busy indicator is shown.
3
49.82; 29.81
File is uploaded.
4
50.38; 40.56
Through clicking the link the file can be downloaded.
5
48.71; 50.13
Clicking the "x" button removes the file and the control changes to "Initial State" where another file can be uploaded instead.
6
64.23; 64.27
When the file name is very long the text will be truncated in the middle of the text and not at the end so that the file type is always visible.
7
85.96; 29.21
The successful upload is confirmed by a message toast. Please use the same message text if possible.

SF Guideline

SF Figma Template

UI5 Sample

Indicating Old Value

Some UIs in SuccessFactors require that the user sees an indication of the old value once they edited a field. Old value is always the value that was last stored to the database. Only use this for editing scenarios of effective dated objects.

SF Guideline

SF Figma Template

UI5 Sample

Translation

SF Guideline Translation - Single Field

SF Figma Template

SF Guideline Translation - Multiple Fields

Combo Box with two column layout

Use the combo box with two-column layout if:

SF Guideline

Message Handling

Leverage Fiori's message handling concept to support users completing a form successfully.

Accessibility

Figma

Resources

Fiori Design Guideline

Fiori Visual Design Spec

SF Form Template Figma