These instructions specify how to digitize VA Form 21P-534EZ (Application for DIC, Survivors Pension, and/or Accrued Benefits) following VA Design System (VADS) patterns and accessibility standards.
1. Landing Page (How to Apply)
2. Introduction Page
3. Form Steps (One thing per page pattern)
- Section I: Veteran's Identification
- Section II: Claimant's Identification
- Section III: Veteran's Service Information
- Section IV: Marital Information
- Section V: Marital History
- Section VI: Child Information
- Section VII: D.I.C.
- Section VIII: Nursing Home/Special Monthly
- Section IX: Income and Assets
- Section X: Medical Expenses
- Section XI: Direct Deposit
- Section XII: Certification
4. Review Page
5. Confirmation Page
Break sections into logical pages:
- Each major question gets its own page
- Related fields can be grouped (e.g., full name fields)
- Complex sections split into multiple pages
- Conditional logic determines page flow
{
component: "va-text-input",
props: {
label: "Veteran's full name",
name: "veteranFullName",
required: true,
hint: "Enter first, middle, and last name"
}
}
{
component: "va-text-input",
props: {
label: "Veteran's Social Security number",
name: "veteranSSN",
required: true,
pattern: "[0-9]{3}-[0-9]{2}-[0-9]{4}",
hint: "Format: XXX-XX-XXXX"
}
}
{
component: "va-date-input",
props: {
label: "Veteran's date of birth",
name: "veteranDOB",
required: true
}
}
{
component: "va-radio",
props: {
label: "Has the veteran, surviving spouse, child, or parent ever filed a claim with VA?",
name: "previousClaim",
options: [
{ label: "Yes", value: "yes" },
{ label: "No", value: "no" }
],
required: true
}
}
{
component: "va-text-input",
props: {
label: "VA file number",
name: "vaFileNumber",
required: false,
showIf: "previousClaim === 'yes'",
hint: "If known"
}
}
{
component: "va-radio",
props: {
label: "Did the veteran die while on active duty?",
name: "diedOnActiveDuty",
options: [
{ label: "Yes", value: "yes" },
{ label: "No", value: "no" }
],
required: true
}
}
{
component: "va-text-input",
props: {
label: "Veteran's service number",
name: "veteranServiceNumber",
required: false
}
}
{
component: "va-date-input",
props: {
label: "Veteran's date of death",
name: "veteranDeathDate",
required: true
}
}
{
component: "va-text-input",
props: {
label: "Your full name",
name: "claimantFullName",
required: true,
hint: "Enter first, middle, and last name"
}
}
{
component: "va-radio",
props: {
label: "What is your relationship to the veteran?",
name: "relationshipToVeteran",
options: [
{ label: "Surviving spouse", value: "survivingSpouse" },
{ label: "Child 18-23 in school", value: "childInSchool" },
{ label: "Custodian filing for child under 18", value: "custodian" },
{ label: "Helpless adult child", value: "helplessAdultChild" }
],
required: true
}
}
{
component: "va-text-input",
props: {
label: "Your Social Security number",
name: "claimantSSN",
required: true,
pattern: "[0-9]{3}-[0-9]{2}-[0-9]{4}",
hint: "Format: XXX-XX-XXXX"
}
}
{
component: "va-date-input",
props: {
label: "Your date of birth",
name: "claimantDOB",
required: true
}
}
{
component: "va-radio",
props: {
label: "Are you a veteran?",
name: "claimantIsVeteran",
options: [
{ label: "Yes", value: "yes" },
{ label: "No", value: "no" }
],
required: true
}
}
{
pattern: "address",
props: {
label: "Your mailing address",
name: "claimantAddress",
required: true,
showCountry: true,
showMilitaryStates: true
}
}
{
component: "va-telephone-input",
props: {
label: "Your phone number",
name: "claimantPhone",
required: true
}
}
{
component: "va-text-input",
props: {
label: "Your email address",
name: "claimantEmail",
type: "email",
required: false,
hint: "Optional"
}
}
{
component: "va-checkbox-group",
props: {
label: "What are you claiming? (Check all that apply)",
name: "benefitsClaimed",
options: [
{ label: "Dependency and Indemnity Compensation (D.I.C.)", value: "dic" },
{ label: "Survivors Pension", value: "survivorsPension" },
{ label: "Accrued Benefits", value: "accruedBenefits" }
],
required: true
}
}
{
component: "va-radio",
props: {
label: "Did the veteran serve under another name?",
name: "servedUnderAnotherName",
options: [
{ label: "Yes", value: "yes" },
{ label: "No", value: "no" }
],
required: true
}
}
{
component: "va-text-input",
props: {
label: "List other names the veteran served under",
name: "otherServiceNames",
required: true,
showIf: "servedUnderAnotherName === 'yes'",
hint: "Enter first, middle, and last name"
}
}
{
component: "va-date-input",
props: {
label: "Date veteran entered active duty",
name: "activeServiceStartDate",
required: true
}
}
{
component: "va-date-input",
props: {
label: "Date veteran released from active duty",
name: "activeServiceEndDate",
required: true
}
}
{
component: "va-select",
props: {
label: "Branch of service",
name: "branchOfService",
options: [
{ label: "-- Select --", value: "" },
{ label: "Army", value: "army" },
{ label: "Navy", value: "navy" },
{ label: "Air Force", value: "airForce" },
{ label: "Marine Corps", value: "marineCorps" },
{ label: "Coast Guard", value: "coastGuard" },
{ label: "Space Force", value: "spaceForce" },
{ label: "NOAA", value: "noaa" },
{ label: "USPHS", value: "usphs" }
],
required: true
}
}
{
component: "va-radio",
props: {
label: "At the time of your marriage to the veteran, were you aware of any reason the marriage might not be legally valid?",
name: "marriageValidityConcerns",
options: [
{ label: "Yes", value: "yes" },
{ label: "No", value: "no" }
],
required: true,
showIf: "relationshipToVeteran === 'survivingSpouse'"
}
}
{
component: "va-textarea",
props: {
label: "Please explain",
name: "marriageValidityExplanation",
required: true,
showIf: "marriageValidityConcerns === 'yes'",
maxlength: 500
}
}
{
component: "va-radio",
props: {
label: "Do you or your dependents have over $25,000.00 in assets (not including the value of your primary residence)?",
name: "assetsOver25k",
options: [
{ label: "Yes", value: "yes" },
{ label: "No", value: "no" }
],
required: true,
showIf: "benefitsClaimed.includes('survivorsPension')",
hint: "Assets are all the money and property you or your dependents own. Assets do not include your/your family's primary residence or personal effects such as appliances and vehicles you or your dependents need for transportation."
}
}
{
component: "va-text-input",
props: {
label: "Name of financial institution",
name: "bankName",
required: true,
hint: "Please provide the name of the bank where you want your direct deposit"
}
}
{
component: "va-text-input",
props: {
label: "Routing or transit number",
name: "routingNumber",
required: true,
pattern: "[0-9]{9}",
hint: "The first nine numbers located at the bottom left of your check"
}
}
{
component: "va-radio",
props: {
label: "Account type",
name: "accountType",
options: [
{ label: "Checking", value: "checking" },
{ label: "Savings", value: "savings" }
],
required: true
}
}
{
component: "va-text-input",
props: {
label: "Account number",
name: "accountNumber",
required: true
}
}
{
component: "va-privacy-agreement",
props: {
showError: false,
checked: false
}
}
{
pattern: "statement-of-truth",
props: {
label: "I certify that the statements in this document are true and complete to the best of my knowledge."
}
}
{
component: "va-button-pair",
props: {
continue: {
label: "Continue",
primary: true
},
back: {
label: "Back",
secondary: true
}
}
}
{
component: "va-progress-bar-segmented",
props: {
current: "[current step]",
total: 14,
label: "Step [X] of 14: [Section Name]"
}
}
- All fields marked with
required: true
- Death certificate upload (if veteran didn't die on active duty)
- Income/asset information (if claiming pension)
- Medical expense documentation (if claiming expenses)
- SSN: XXX-XX-XXXX
- Phone: (XXX) XXX-XXXX
- Dates: MM/DD/YYYY
- Currency: $X,XXX.XX
- Routing number: 9 digits
- Show marital sections only for surviving spouse
- Show income sections only for pension claims
- Show child sections based on dependent claims
- Show expense worksheets when expenses claimed
- "Please enter the veteran's full name"
- "Please enter a valid Social Security Number (XXX-XX-XXXX)"
- "Please select your relationship to the veteran"
- "Please enter a valid date (MM/DD/YYYY)"
- "Please select at least one benefit type"
- All fields must have descriptive labels
- Required fields marked with asterisk and
required
attribute - Error messages associated with fields using
aria-describedby
- Fieldsets for grouped radio buttons and checkboxes
- Focus management between form pages
- Screen reader announcements for progress
Generate summary cards for each section:
{
component: "va-summary-box",
props: {
heading: "[Section Name]",
editLink: "/form/[section-path]",
content: {
// Display field labels and entered values
}
}
}
{
component: "va-button",
props: {
text: "Submit application",
primary: true,
submit: true
}
}
{
component: "va-autosave",
props: {
frequency: 30,
message: "Your application has been saved."
}
}