MemberJunction / MemberJunction/MJ

Sibling controls still have no accessible-name inputs (mj-combobox, mj-switch, mj-numeric-input, mj-datepicker, mj-page-search) + decide on the dev-mode unnamed warning

Open
#4,116 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TSQL
Stars
29
Forks
6
Avg merge
1d 8h
Merged PRs (30d)
308

Description

Follow-up from #3863, which added `AriaLabel` / `AriaLabelledBy` / `AriaDescribedBy` / `InputId` to `mj-dropdown`.

Several sibling controls in `@memberjunction/ng-ui-components` ship with **no accessible-name input at all**. Enumerating them in one place so each does not get its own independently-invented API later — the naming shape `mj-dropdown` now uses should be the template.

## Highest priority

**`mj-combobox`** (7 consumer files) — shares the same `role="combobox"` markup as `mj-dropdown` and gained none of the naming inputs. Its toggle button also has **no `aria-label` at all**, so it announces as an unnamed button.

## Also missing a naming input

- `mj-switch`
- `mj-numeric-input`
- `mj-datepicker`
- `mj-page-search`

## Suggested shape

Match `mj-dropdown` exactly: four optional inputs, absent-beats-empty (never render `aria-label=""`, which overrides every other naming source with an explicitly empty name), applied to the popup as well as the trigger where there is one. Where a control has a secondary input (a filter box, a toggle), name it from the same source rather than leaving a second unnamed control — see the `aria-labelledby` id-list approach `mj-dropdown` uses so the name composes with a visible label's own text.

## Prevention

#3860 also suggested a **dev-mode warning when a control renders with no accessible name** — "the defect is silent otherwise, which is why it survived this long". #3863 neither implemented nor declined it, so it needs a recorded decision. Without some feedback loop, every new dropdown or combobox added tomorrow ships unnamed and silent again, and this sweep repeats.

Contributor guide

Open the contributing guide

Research direction

Start with the mj-dropdown accessibility-input changes from #3863, then inspect mj-combobox, mj-switch, mj-numeric-input, mj-datepicker, and mj-page-search in @memberjunction/ng-ui-components. Determine how the four optional naming inputs and secondary-control naming should apply, and record a decision on the dev-mode unnamed warning. Done means the controls have consistent accessible-name behavior and the prevention decision is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular
Domain
accessibility, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.