Cesivi — Working with List Items and File Uploads¶
This guide covers the core data-entry workflows for Cesivi lists and libraries: creating/editing items, uploading files, managing folders, and performing bulk operations.
Adding Items to a List¶
From the Command Bar (New)¶
- Navigate to a list — e.g.
http://localhost:15510/Lists/Tasks/Forms/AllItems.aspx - Click New in the command bar (or the + New item ribbon button).
- The NewForm.aspx page opens. Fill in the fields and click Save.
The following column types are supported in NewForm / EditForm:
| Type | Notes |
|---|---|
| Single line of text | Plain <input type="text"> |
| Multiple lines of text | <textarea> (plain) or rich-text editor |
| Number / Currency / Percentage | Numeric <input> with step hints |
| Date / Date+Time | HTML5 <input type="date"> or type="datetime-local"> |
| Yes/No (Boolean) | Checkbox |
| Choice | Dropdown <select> or radio buttons |
| Lookup | <select> populated from the target list |
| Person or Group | People-picker chip widget (sp-peopleeditor) |
| Hyperlink / Picture | URL + description fields |
| Taxonomy | Term-store picker |
Required-Field Validation¶
Fields marked Required display a red asterisk in the form label. Submitting without filling a required field shows a red validation message and prevents the form from posting.
Uploading Files to a Library¶
Via the Upload Page¶
- Navigate to a document library — e.g.
/.../Lists/Documents/Forms/AllItems.aspx - Click Upload → Files in the command bar, or click the Upload ribbon button.
- You are redirected to Upload.aspx. Choose one or more files with the file picker.
- Click Upload — the files are stored and you are redirected back to AllItems.
Sub-folder uploads: append
?RootFolder=%2FDocuments%2FMySubfolderto the Upload.aspx URL (or navigate into the folder first and then click Upload).
Via the File Input Widget¶
On the AllItems.aspx view for a library, a hidden file-input button
(#modern-file-input) is attached to the command bar. Clicking the
Upload command-bar button opens the OS file picker directly — no redirect.
Supported Scenarios¶
| Scenario | Supported |
|---|---|
| Single file upload | ✅ |
| Zero-byte file | ✅ |
| Upload into sub-folder | ✅ |
| Upload into sub-web library | ✅ |
| Overwrite existing file | ✅ (?overwrite=true) |
| File with required metadata | ✅ — EditForm opens automatically |
Working with Folders¶
Creating a Folder¶
- Navigate to a document library.
- Click New Folder in the command bar or ribbon.
- A browser prompt asks for the folder name — type the name and click OK.
- The folder appears in AllItems. Click it to navigate inside.
Navigating into a Folder¶
Click the folder name in AllItems to open the folder context.
The URL gains a ?RootFolder= parameter reflecting the folder path.
The breadcrumb at the top shows the path: Library › FolderName.
Deleting a Folder¶
Select the folder checkbox in AllItems, then click Delete in the command bar. Confirm the browser dialog. All contents are deleted recursively.
Bulk Operations¶
Bulk Delete¶
- In AllItems.aspx, check the select-all checkbox (
#cb-all) at the top-left of the table header to select all items on the current page, OR check individual rows. - The Delete button becomes active in the command bar.
- Click Delete — confirm in the browser dialog — all selected items are removed.
Note: Selecting no rows keeps the Delete button hidden/disabled.
Quick Edit (Inline Grid Editing)¶
Inline grid editing ("Quick Edit" / "Datasheet View" in SharePoint) is not yet implemented in Cesivi. See the v1.4 backlog for planned support.
Working with Sub-Webs¶
Items and files in sub-web lists/libraries are stored independently from root-web content. The SPWebPath header routes requests to the correct storage scope.
Creating Items in a Sub-Web¶
Navigate to the sub-web AllItems URL: http://host/<subweb>/Lists/<list>/AllItems.aspx
Click New — the form posts with the sub-web context automatically.
Storage Key Isolation¶
A list named Documents in root web and the same name in /<subweb> are
fully separate. Uploading to one does NOT affect the other.
(Internally, sub-web lists are keyed as webApp||site||RootWeb||<subweb>||...)
Screenshots¶
| Screenshot | Description |
|---|---|
_docs/images/list-items-uploads/newform-text.png |
NewForm with text field |
_docs/images/list-items-uploads/allitems-with-items.png |
AllItems populated |
_docs/images/list-items-uploads/upload-page.png |
Upload.aspx |
(Screenshots are captured automatically during the PLAN-1628 E2E test run
and stored under L:\Cesivi\main\test-results\plan-1628\.)
Document created as part of PLAN-1628 — List Items + File Uploads E2E Verification (v1.3 PRIORITY 0 surface #3).
WCAG 2.1 AA Conformance — List Items + File Uploads¶
Conformance level: WCAG 2.1 AA (automated + manual) Assessment date: 2026-05-29 Assessment method: Deque axe-core 4.11 via Playwright + Windows Narrator manual pass
Automated Gates (PLAN-1640)¶
All 8 surface #3 routes pass axe-core with zero critical + zero serious violations and KnownAxeAcceptances = [] (no per-surface waivers):
| Route | Critical | Serious |
|---|---|---|
/Lists/{list}/NewForm.aspx |
0 | 0 |
/Lists/{list}/EditForm.aspx |
0 | 0 |
/Lists/{list}/DispForm.aspx |
0 | 0 |
/Lists/{list}/Upload.aspx |
0 | 0 |
/_layouts/15/versions.aspx |
0 | 0 |
/_layouts/15/checkin.aspx |
0 | 0 |
/_layouts/15/managecheckedoutfiles.aspx |
0 | 0 |
/_layouts/15/recyclebin.aspx |
0 | 0 |
Keyboard Navigation (15 tests GREEN)¶
- Skip-nav link present and visible on focus on every route
- Focus-visible CSS outline non-zero on all focusable elements
- NewForm
aria-invalidset on invalid submit + focus jumps to first error - NewForm/EditForm error
role="alert"present after invalid submit - All form controls focusable (NewForm, EditForm, CheckIn)
- Upload: Browse button focusable; drop zone not in tab order (mouse-only by spec)
- Upload: progress region has
aria-live="polite" - Versions:
<th scope="col">on every column header - Versions: Restore button has
aria-label="Restore version N.N" - CheckIn: comment textarea and radio buttons accessible via keyboard
- RecycleBin: item checkboxes have accessible names; select-all has
aria-label
Screen-Reader Semantics (11 tests GREEN)¶
- NewForm/EditForm:
aria-invalid="true"+role="alert"+aria-describedbyon invalid submit - EditForm: same contract on invalid submit
- Upload: progress region has
aria-live="polite" - Versions:
<table>+<th scope="col">+aria-current="true"on current version row - CheckIn:
<label>association on comment textarea; fieldset/radiogroup on version-type choices - ManageCheckedOutFiles:
<th scope="col">on table headers - RecycleBin: item checkbox accessible name = item title; select-all has
aria-label - Upload: file
<input type="file">witharia-hidden(visual widget replaces it)
Test Files¶
Cesivi.Tests.WebUI/BrowserTests/A11yTests/ListItemsAndUploadsA11yTests.cs— 4 axe-core testsCesivi.Tests.WebUI/BrowserTests/A11yTests/ListItemsAndUploadsKeyboardTests.cs— 15 keyboard testsCesivi.Tests.WebUI/BrowserTests/A11yTests/ListItemsAndUploadsScreenReaderTests.cs— 11 SR tests
Narrator Report¶
See _project/areas/a11y/list-items-and-uploads-narrator-report-1640.md.
Known Residual Issues¶
None. Zero waivers issued. All critical/serious violations remediated.