-
-
Notifications
You must be signed in to change notification settings - Fork 77
Application Form Style Guidelines
This guide documents the UI, content, formatting, validation, and accessibility conventions for Techtonica’s application form pages.
Use this guide when building or updating the application form, or when creating future multi-step form features on the Techtonica website.
Before users reach the first form page, show a descriptive information page. This page gives applicants the context they need before starting the application.
The pre-form information page should include placeholder text, to be updated by program staff, under the following headings in this order:
- The Program
- Pre-Req and Form Deadline
- Eligibility
- Application Process
- What We Look For
- How to Prepare
- Acceptance & Onboarding
The application form has six pages. A progress indicator must always be visible at the top of each page so users know which step they are on and how many steps remain.
Use one of the following formats:
- A progress bar showing percentage of completion
- Step dots showing each step as a numbered or labeled point
- General Applicant Demographics
- Applicant & Household Financial Information
- Additional Applicant Information
- Applicant Long-Text Answers
- Administrative Questions
- Confirmation / Submission Page
- The current step must be clearly highlighted or visually distinguished.
- Completed steps may be shown with a filled dot, checkmark, or similar indicator.
- Users must not be able to skip ahead by manually changing the URL.
An info icon hover bubble places a small info icon next to a question label. When the user hovers over or focuses on the icon, a tooltip appears with additional guidance.
Use an info icon when:
- The question label is not self-explanatory.
- Additional context would help the applicant answer correctly.
- The guidance is useful, but too long to include directly in the label.
Do not use info icons on every question. Use them only where they add real value.
Place the icon directly next to the question label, not below it.
- The tooltip must appear on mouse hover.
- The tooltip must also appear on keyboard focus.
- The tooltip must disappear when the cursor or keyboard focus moves away.
- The icon must include appropriate ARIA attributes, such as
aria-labeloraria-describedby.
Use the following tooltip text exactly as written.
- How to pronounce your full name — "You can make a recording here (name-coach.com), generate your link and share in the text field if preferred"
- Email address — "Please use the same business-minded Gmail with your name (like janedoe@gmail.com, jdoe@gmail.com) that you used in the shorter form. This is the email we will contact you with for the duration of the application process and program."
- What is your birth date? — "In this format: Month/Date/Year"
- Cell phone number with area code — "In this format: 555-555-5555"
- Do you have a disability? — "You are considered to have a disability if you have a physical or mental impairment or medical condition that substantially limits a major life activity, or if you have a history or record of such an impairment or medical condition. Disabilities include, but are not limited to: Blindness, Deafness, Cancer, Diabetes, Epilepsy, Autism, Cerebral Palsy, HIV/AIDS, Schizophrenia, Muscular Dystrophy, Bipolar Disorder, Major Depression, Multiple Sclerosis (MS), missing limbs or partially missing limbs, Post-Traumatic Stress Disorder (PTSD), Obsessive Compulsive Disorder, impairments requiring the use of a wheelchair, intellectual disability."
- Annual household income — "In this format: 40000. If you have any special circumstances that make you question your eligibility for Techtonica's program, please feel free to contact us (info@techtonica.org) and we will be happy to discuss with you."
- Net worth — "In this format: 1500. This info helps us calculate overall stipend needs. Please give a summation and verification for your total wealth or financial assets as an individual (or shared household, if that applies, including cash, stocks, bonds, mutual funds, and bank deposits); excluding financial liabilities. If you believe you have none of these whatsoever, then report the value as such and submit documentation in the next question to that end (such as a termination letter, public benefits verification, etc). If you need to provide an explanation for your answers, please do so in the 'Anything else you want to share with us?' question which is second-to-last in this form."
- Net worth verification upload — "This info helps us calculate overall stipend needs."
- Average monthly costs — "This includes things like: groceries, phone & internet, medical expenses, childcare, rent, insurance, utilities, loan payments, etc. Please only put a total whole number in this field (i.e. 1200, not 1200.09)"
- How many times have you applied? — "If you have already applied three times in the past, you are not eligible to apply again and should stop filling out this form."
- Are you willing to quit your job(s)? — "We advise AGAINST working part-time during this intensive program."
- Self-assessment rating scale — "1=Disagree, 2=Somewhat disagree, 3=Somewhat agree, 4=Agree"
- List all the steps to make a sandwich — "This is to help us assess your logical thinking; please be specific and thorough."
- How did you find out about Techtonica? — "The more specific you can be, the better—was it a flyer, and if so, where? Did a friend tell you, and if so, how did they find out? Was it a Facebook group, and if so, which one? Etc."
- Other full URLs to you online — "For example, 'https://twitter.com/TechtonicaOrg'"
- Reference #1 — "This may not be a relative, significant other, or friend. It must be someone who can speak to your work quality in an unbiased manner."
- Reference #2 — "This may not be a relative, significant other, or friend. It must be someone who can speak to your work quality in an unbiased manner."
- Do you have a MacBook? — "This is to let us know if we will need to help you secure a MacBook during the program."
- Would you be willing to move to a new city? — "While this is not currently a requirement, it may be a requirement again in the near future, and it increases your chances of securing a job."
Use the input type that best matches the type of answer the applicant needs to provide.
Use multiple choice when:
- The set of valid answers is fixed and known in advance.
- You want to prevent free-text errors or inconsistent responses.
- The question has a Yes/No answer.
Use a text input when:
- The answer is open-ended or unique to the applicant.
- The answer requires a sentence, paragraph, or explanation.
- The answer is a URL, email address, or numeric value that requires format validation.
Use a dropdown when there are roughly five or more options.
Dropdowns save vertical space and work better for longer lists.
Examples:
- Gender identity
- Race/ethnicity
- Age group
Use a bubble list when there are roughly four or fewer options.
Bubble lists are easier to scan and feel lighter for short selections.
Examples:
- Yes/No questions
- Number of prior applications
If a dropdown includes an Other option, selecting it must activate a text input field so the user can type their own answer.
This applies to:
- Gender identity
- Pronouns
- Race/ethnicity
Use the following input types where appropriate:
- Text input — Open-ended answers, names, and free-text responses
- Text input with email validation — Applicant email and reference email fields
- Text input with URL validation — LinkedIn URL and MIT Living Wage Calculator URL fields
- Number input with value greater than or equal to 0 — Annual household income and net worth
- Number input with value greater than or equal to 25000 — MIT Living Wage Calculator annual income amount
- Whole number input — Average monthly costs and typing accuracy percentage
- Multiple choice grid rated 1–4 — Self-assessment statements
- Upload field — Income verification, net worth verification, typing test screenshot, and FreeCodeCamp screenshot
- Checkbox — Single confirmation or agreement statement
- Multiple text input — Related sub-fields within one question, such as reference contact info or emergency contact
Where a tooltip specifies a format, that format is the enforced standard.
Validate all fields on the client side before allowing the user to proceed to the next page.
Use this format in forms:
555-555-5555
Example:
415-123-4567
Do not use this format in forms:
(555) 555-5555
Enforce the 555-555-5555 format with input validation.
Two input methods are acceptable.
Use Month/Date/Year.
Example:
01/15/1990
A date picker is acceptable as an alternative input method.
Choose the input method based on implementation context.
Inside form fields, use whole numbers only.
Do not include:
- Currency symbols
- Commas
- Decimals
Correct examples:
40000
1500
1200
Incorrect examples:
$40,000
$1,500.80
40000.00
1,200
For the monthly costs field specifically, use whole numbers only. Do not allow decimals.
The self-assessment section on the Long-Text Answers page uses a rated 1–4 scale displayed as a multiple choice grid.
The hover bubble for this section must display all four values and their labels.
- 1 = Disagree
- 2 = Somewhat disagree
- 3 = Somewhat agree
- 4 = Agree
Include the following nine statements:
- I am comfortable presenting a project or short talk to a group.
- I am comfortable collaborating with others on a team.
- I am comfortable asking others for help when I'm stuck.
- I do not hide that I'm struggling from friends, colleagues, or managers.
- I care greatly about diversity, equity, and inclusion.
- I learn brand-new concepts quickly.
- When working with others, I'm the person who likes to help everyone get up to speed.
- I would be interested in mentoring future participants after I graduate from Techtonica.
- I would be actively involved with Techtonica's graduates group after completion of the program.
All upload fields connect to a private Google Drive folder. Files are not stored in a public database.
The maximum file size per upload is 10MB.
- Household income verification documents — Financial page; up to 10 files; no file type restriction
- Net worth verification documents — Financial page; one file; no file type restriction
- Typing test screenshot — Additional page; one file; no file type restriction
- FreeCodeCamp screenshot — Additional page; one file; images and PDFs only
Buttons should follow site-wide visual standards and use SCSS variables from _settings.scss.
Use primary buttons for actions like:
- Next
- Submit
Primary buttons should use:
- Orange background:
$focal-orange - Blue hover state
- White text
Use secondary buttons for actions like:
- Back
- Cancel
Secondary buttons should use:
- Blue background:
$main-blue - Lighter blue hover state
- White text
Button text must always be white.
Do not use blue text on any button.
Always use SCSS variables from _settings.scss for colors. Never hardcode hex values.
Use the site-wide button font size standard:
22px / 1.375em / 16.5pt
Until a site-wide standard is confirmed, follow these practices for the application form:
- Letter case — Use Title Case, such as Next Step, Go Back, and Submit Application.
- Alignment — Right-align primary buttons such as Next and Submit.
- Alignment — Left-align secondary buttons such as Back.
- Width — Size buttons to their content.
- Width — Do not use full-width buttons inside form pages.
- Border radius — To be determined by the design team.
The application form must be responsive and accessible.
- All form fields must have visible, properly associated
<label>elements. - All info icon hover bubbles must include ARIA attributes, such as
aria-labeloraria-describedby. - All info icon hover bubbles must be keyboard accessible.
- Upload fields must have descriptive labels so screen readers can identify them.
- Required fields must be clearly indicated both visually and programmatically.
- The form must use HTML5 semantic elements throughout.
All of the following elements in the application form must pass WCAG AA contrast requirements before a pull request is submitted:
- Form field labels
- Placeholder text inside inputs
- Helper text and info icon hover bubble text
- Error and validation messages
- Button text on all button types and states, including default and hover
- Any text placed on a colored background
Use the WebAIM Contrast Checker or a browser accessibility extension such as axe DevTools to verify contrast.
The application form uses client-side validation via HTML5 attributes and JavaScript.
All required fields must be validated before the user can proceed to the next page.
Users must not be able to skip ahead by manually changing the URL.
- Email fields — Must match a valid email format.
-
URL fields — Must match a valid URL format and include
https://. -
Phone fields — Must match the
555-555-5555format. -
Date fields — Must match
Month/Date/Yearformat if using text input. - Income and net worth fields — Must be a number greater than or equal to 0.
- MIT Living Wage amount — Must be a number greater than or equal to 25000.
- Monthly costs and typing accuracy — Must be whole numbers with no decimals.
- File upload fields — Must not exceed 10MB per file.
- FreeCodeCamp screenshot field — Must accept images and PDFs only.