Site Collections and Sub-Sites — User Guide¶
Audience: Site administrators who need to create, configure, and manage site collections and sub-sites in Cesivi.
Overview¶
Cesivi's site hierarchy mirrors SharePoint On-Prem's classic container model:
WebApplication (e.g. "Default")
└── SiteCollection (e.g. "RootSite")
└── RootWeb (root site, at /)
├── Sub-web A (at /subwebA)
│ └── Sub-web A1 (at /subwebA/a1, depth 2)
│ └── Sub-web A1a (at /subwebA/a1/a1a, depth 3)
└── Sub-web B (at /subwebB)
All storage keys use the full path prefix webApp||siteCollection||RootWeb||<seg1>||<seg2>||…, ensuring sub-webs at any depth are properly isolated from each other and from the root web.
Site Collections¶
Listing Site Collections (Admin UI)¶
Navigate to: Cesivi Administration → Application Management → Manage Site Collections
(/_admin/sitecollections.aspx)
The table shows all site collections in the current web application with their Title, URL, Owner, storage used, and status.
Creating a Site Collection¶
- Go to
/_admin/sitecollections.aspxand click Create Site Collection. - Fill in:
- Title — display name shown throughout the site
- URL — the URL segment after the web application base URL
- Owner — login name of the primary site collection administrator
- Template — site template (e.g. Team Site, Blank, Blog, Wiki)
- Click Create. The server creates the RootWeb + standard lists + default content types.
- The new site collection appears in the listing immediately.
Site Collection Settings¶
Click the title in the site collections list to open the Settings panel. Fields: - Title — rename the site collection - Owner — change the primary administrator
Deleting a Site Collection¶
From the site collections list, use the Delete action to open the confirmation page. Deletion cascades: all sub-webs, lists, items, files, and settings within the site collection are removed permanently.
Note: There is no recycle bin at the site collection level for bulk deletions. Verify before confirming.
Root Web Settings¶
Navigate to the root web of any site and open:
Site Settings (/_layouts/15/settings.aspx)
The Settings hub groups all admin links into sections:
| Section | Key links |
|---|---|
| Users and Permissions | People and groups, Site permissions, Site collection administrators |
| Web Designer Galleries | Site columns, Site content types, Web parts, List templates, Themes |
| Site Administration | Regional settings, Language settings, Sites and workspaces, Recycle Bin |
| Look and Feel | Title / description / logo, Quick launch, Top link bar, Change the look |
| Site Actions | Manage site features, Save site as template, Delete this site |
| Site Collection Administration | Recycle bin, Site collection features, Site hierarchy, Storage metrics |
Editing Title, Description, and Logo¶
- From Site Settings, click Title, description, and logo (under Look and Feel).
- Update the Title (required), Description, and Logo URL fields.
- Click OK. A success banner confirms the save.
The new title appears immediately in the navigation sidebar and page header.
Regional Settings¶
Under Site Administration → Regional settings (/_layouts/15/regionalsetng.aspx):
- Locale — select from 10 supported languages (English, German, French, Spanish, Japanese, Chinese, Portuguese, Russian, Italian, Dutch). LCID is stored in the web's Language property.
- Time Zone — Cesivi stores all dates in UTC; the time zone display is informational only.
- Calendar — fixed to Gregorian in this release.
Click OK to save. A success banner confirms.
Theme Gallery¶
Under Web Designer Galleries → Themes (/_layouts/15/themeweb.aspx):
- The Composed Looks grid shows all available color/font themes.
- Click a tile to preview it (live preview applies immediately to the page).
- Click Apply Look to persist the selection to this web.
- The Theme Catalog Files table lists the
.spcolorand.spfontfiles available in the theme catalog.
Language Settings¶
Under Site Administration → Language settings (/_layouts/15/muisetng.aspx):
Shows the current default language and LCID. Alternate languages are noted as informational only in this release — the default language controls all interface text. Use Regional Settings to change the default language.
Site Collection Administrators¶
Under Users and Permissions → Site collection administrators (/_layouts/15/mngsiteadmin.aspx):
Lists all current site collection administrators. Use Add Administrator to grant full-control access to additional users. Use Remove to revoke access from a listed user.
Creating Sub-Sites¶
Navigate to Site Settings → Site Administration → Sites and workspaces → Create.
Or navigate directly to: /_layouts/15/newweb.aspx (from any context to create a sub-site under the current web).
Sub-Site Creation Form¶
Fill in:
| Field | Description |
|---|---|
| Title | Display name for the new sub-site |
| Description | Optional description (shown in search results and site listings) |
| URL Name | URL segment — letters, numbers, hyphens, underscores only |
| Template | Built-in template (Team Site, Blank, Blog, Wiki, Document Center) or a saved template |
| Use same permissions as parent site | Checked = inherit parent's role assignments; unchecked = unique permissions |
Click Create to create the sub-site. After creation you are redirected to the new sub-site's home page.
Available Built-In Templates¶
| ID | Name | Description |
|---|---|---|
STS#0 |
Team Site | Collaborative team site with document library, tasks, announcements |
STS#1 |
Blank Site | Empty site with no pre-seeded lists |
STS#2 |
Document Workspace | Document-centric site for collaboration on a single document |
BLOG#0 |
Blog | Personal or team blog with posts and comments |
WIKI#0 |
Wiki Site | Community wiki for brainstorming and knowledge sharing |
DOCLIB#0 |
Document Center | Enterprise document management center |
Sub-Site at Depth 2 and Deeper¶
After creating a depth-1 sub-site (e.g. /teamA), navigate to that sub-site and open Site Settings → Sites and workspaces → Create to create a depth-2 sub-site (e.g. /teamA/projectX).
Cesivi supports sub-sites at any depth. The storage key at depth 3 would be webApp||site||RootWeb||teamA||projectX||subItem.
Permissions at Creation Time¶
Inherit permissions (default): The new sub-site reuses the parent site's role assignments. HasUniqueRoleAssignments = false. The parent's permission matrix applies automatically.
Unique permissions: Uncheck "Use same permissions as parent site" before creating. The sub-site gets HasUniqueRoleAssignments = true and starts with an independent permission set. Use Site permissions (/_layouts/15/user.aspx) in the new sub-site to configure role assignments.
Viewing the Site Hierarchy¶
Navigate to Site Settings → Site Collection Administration → Site hierarchy (/_layouts/15/vsubwebs.aspx).
The page lists all direct children of the current web with their Title, URL, and Description. Click a sub-site's title to navigate to it.
Scope: the page shows only direct children of the current context, not all descendants. Navigate into a sub-web and open vsubwebs.aspx again to see that sub-web's children.
Deleting a Sub-Site¶
Navigate to the sub-site to be deleted, then:
- Site Settings → Site Actions → Delete this site (
/_layouts/15/deleteweb.aspx) - Confirm the URL of the site shown on the page.
- Click Delete.
Deletion is permanent and cascades: all lists, libraries, files, list items, and nested sub-webs within the deleted site are removed.
Cannot delete the root web. The root web of a site collection cannot be deleted this way; delete the entire site collection from the Admin UI instead.
Breadcrumb Navigation¶
Each page under a sub-site renders a breadcrumb in the page header:
Home > teamA > projectX > Site Settings
All breadcrumb links are clickable and navigate to the correct context. Depth-3 breadcrumbs are verified at depth 3 (e.g. /{seg1}/{seg2}/{seg3}/_layouts/15/viewlsts.aspx).
Cross-Client API Compat (for Developers)¶
All four Cesivi client APIs support sub-web lifecycle operations:
| Client | Create | List | Delete |
|---|---|---|---|
| REST | POST /_api/web/webs/add |
GET /_api/web/Webs |
DELETE /_api/web |
| CSOM | Web.Webs.Add(WebCreationInformation) |
Web.Webs collection load |
Web.DeleteObject() |
| PnP PowerShell | New-PnPWeb |
Get-PnPWeb |
Remove-PnPWeb |
| SOAP | Webs.CreateWeb |
Webs.GetWebCollection |
Webs.DeleteWeb |
REST Examples¶
# Create sub-web
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Basic YWRtaW46cGFzc3dvcmQ=" \
"http://localhost:5001/_api/web/webs/add" \
-d '{"parameters":{"Url":"teamA","Title":"Team A","WebTemplate":"STS#0","InheritPermissions":true}}'
# List sub-webs of current web
curl -H "Authorization: Basic YWRtaW46cGFzc3dvcmQ=" \
"http://localhost:5001/_api/web/Webs?$select=Title,ServerRelativeUrl"
# Delete sub-web (set SPWebPath header to target)
curl -X DELETE \
-H "Authorization: Basic YWRtaW46cGFzc3dvcmQ=" \
-H "SPWebPath: RootWeb/teamA" \
"http://localhost:5001/_api/web"
CSOM Example¶
using var ctx = new ClientContext("http://localhost:5001");
ctx.Credentials = new NetworkCredential("admin", "password");
var creationInfo = new WebCreationInformation
{
Title = "Team A",
Url = "teamA",
WebTemplate = "STS#0",
UseSamePermissionsAsParentSite = true
};
var subWeb = ctx.Web.Webs.Add(creationInfo);
ctx.Load(subWeb, w => w.Title, w => w.ServerRelativeUrl);
ctx.ExecuteQuery();
Console.WriteLine($"Created: {subWeb.Title} at {subWeb.ServerRelativeUrl}");
Differences vs SharePoint On-Prem¶
| Behavior | Real SharePoint | Cesivi |
|---|---|---|
| Time zones | Per-web configurable | All UTC internally; regional settings locale-only |
| Alternate languages (MUI) | Full interface translation | Default language controls all text; MUI info page is read-only |
| Site collection quota | Storage quota enforced | Unlimited (no quota enforcement) |
| Sub-site depth | Limited by URL length | No practical limit |
| Composed looks | Full theme engine | Color/font theme selection; background images not supported |
For managing columns (site columns and list columns) within any site or sub-site, see USER-GUIDE-COLUMNS.md. For managing list views (sort, filter, group-by, view types) within any site or sub-site, see USER-GUIDE-VIEWS.md.
WCAG 2.1 AA Conformance — Site Collections + Sub-Sites (PLAN-1638)¶
Cesivi v1.4 includes a full WCAG 2.1 AA pass for all 11 pages in the Site Collections + Sub-Sites surface.
Automated Test Coverage¶
All 11 routes are registered in AllSurfacesAxeRunner under bucket "v1.4 Group A1 — Site Collections + Sub-Sites" and scanned with KnownAxeAcceptances = [] (no color-contrast or region waivers):
| Route | Name | axe-core Result |
|---|---|---|
/_admin/sitecollections.aspx |
SC List | ✅ 0 critical, 0 serious |
/_admin/sitecollectioncreate.aspx |
SC Create | ✅ 0 critical, 0 serious |
/_admin/sitecollectionsettings.aspx |
SC Settings | ✅ 0 critical, 0 serious |
/_admin/sitecollectiondelete.aspx |
SC Delete | ✅ 0 critical, 0 serious |
/_admin/webapplications.aspx |
WebApp List | ✅ 0 critical, 0 serious |
/_admin/webapplicationsettings.aspx |
WebApp Settings | ✅ 0 critical, 0 serious |
/_admin/webapplicationcreate.aspx |
WebApp Create | ✅ 0 critical, 0 serious |
/_layouts/15/newweb.aspx |
Create Sub-Web | ✅ 0 critical, 0 serious |
/_layouts/15/vsubwebs.aspx |
Site Hierarchy | ✅ 0 critical, 0 serious |
/_layouts/15/deleteweb.aspx |
Delete Sub-Web | ✅ 0 critical, 0 serious |
/<sub>/_layouts/15/settings.aspx |
Settings Hub (sub-web) | ✅ 0 critical, 0 serious |
What Was Fixed (Phase A)¶
- Landmarks:
<header>,<main id="main-content">,<footer>added to_AdminLayout.cshtml; labelled<nav aria-label="Administration navigation">. - Skip-navigation:
<a href="#main-content" class="skip-link">Skip to main content</a>added as first child of<body>in admin layout. - Tables:
scope="col"added to all<th>elements in SC list, WebApp list, and Vsubwebs tables. - Live regions: All error toasts
role="alert" aria-live="assertive"; all success toastsrole="status" aria-live="polite". - Action buttons: All icon-only action buttons (Settings/Delete in SC list, gear icon in Vsubwebs) have
aria-labelwith the item title. - Form inputs: All read-only display fields changed from
<label>to<span class="admin-label">(eliminates invalid label associations). - JavaScript alerts:
confirm()dialogs in WebApp Create replaced with inlinerole="alert"error regions.
Keyboard Navigation¶
7 keyboard navigation contract tests (SiteCollectionsAndSubWebsKeyboardTests.cs):
- Skip-nav link present and targets correct anchor in both admin and layouts routes.
- All required form controls (inputs, selects, checkboxes) are focusable.
- Template picker in Newweb is keyboard-operable (click/tab to select).
- :focus-visible CSS rule active on all pages.
Screen-Reader Semantics¶
6 SR semantics contract tests (SiteCollectionsAndSubWebsScreenReaderTests.cs):
- All form inputs have label/aria-label associations.
- Error regions are role="alert"; success regions are role="status".
- Admin table column headers have scope="col".
- Admin sidebar nav has aria-label.
Manual Narrator Report¶
See _project/areas/a11y/site-collections-narrator-report-1638.md.
Residual Moderate/Minor Violations¶
None requiring waiver at Phase A completion. All residual items are moderate or minor (informational); no AA-level failures.
Last updated: PLAN-1638 — WCAG 2.1 AA conformance section added; PLAN-1630 — cross-link to columns guide added