
Question bank
Adobe Certified Expert - Adobe Experience Manager Sites Developer
33 Adobe Certified Expert - Adobe Experience Manager Sites Developer questions with the correct answer and a written explanation, organised across 4 exam domains.
- 33 questions
- 4 domains
- Foundation level
Question index
Jump straight to any question. Answers and explanations are inline.
AEM Development
11 questions in this domain
- Question 1Single Choice
What is the purpose of the sling:resourceSuperType property in a proxy component?
- ADefines the resource type for rendering
- BPoints to a parent component to inherit behaviorCorrect answer
- CSets the default category for client libraries
- DStores the component's dialog definition
Why this is the answer
The sling:resourceSuperType sets the parent component for inheritance, enabling the proxy pattern without copying resource types.
- Question 2Multiple Select
Which annotations are valid for creating a Sling Model? (Select two)
- A@ModelCorrect answer
- B@SlingServlet
- C@InjectCorrect answer
- D@Component
Why this is the answer
@Model marks the class as a Sling Model; @Inject is used for dependency injection into the model.
- Question 3Interactive
Review the HTL code snippet. What does the data-sly-use attribute do?
- AIncludes a client-side JavaScript library
- BLoads a Java Use-API object and makes it available in the templateCorrect answer
- CApplies a CSS class to the element
- DDefines a reusable template fragment
Why this is the answer
data-sly-use instantiates a server-side Java or JavaScript object, exposing its methods and properties to the HTL template.
- Question 4Single Choice
Where are editable template policies stored in the AEM repository?
- A/apps/
- B/content/
- C/conf/Correct answer
- D/etc/designs/
Why this is the answer
Editable template policies are stored under /conf/<project>/settings/wcm/policies/.
- Question 5Multiple Select
Which properties must be set for a client library folder under /apps to be served via the proxy path? (Select two)
- AallowProxy = trueCorrect answer
- BcategoriesCorrect answer
- Cjcr:primaryType = cq:ClientLibraryFolder
- Ddependencies
Why this is the answer
allowProxy=true enables the proxy path; categories is needed for the clientlib to be included by components.
- Question 6Interactive
Refer to the overlay path: /apps/project/components/text. What does the Sling Resource Merger do when a component requests a resource from /libs?
- AIt only looks in /libs, ignoring the overlay.
- BIt merges properties from both, with /apps taking precedence.Correct answer
- CIt replaces /libs entirely with the overlay.
- DIt throws an error if both paths exist.
Why this is the answer
The Sling Resource Merger checks /apps first; if nodes exist, they override /libs. Non-overridden parts fall back to /libs.
- Question 7Single Choice
Which interface must a custom workflow step implement?
- AWorkflowProcessCorrect answer
- BJobConsumer
- CEventHandler
- DSlingSafeMethodsServlet
Why this is the answer
Custom workflow steps must implement the com.adobe.granite.workflow.exec.WorkflowProcess interface.
- Question 8Multiple Select
Which two statements are true about AEM tags? (Select two)
- ATags are stored as cq:Tag nodes under /content/cq:tags.Correct answer
- BTags must be created using the TagManager API.Correct answer
- CTags are automatically inherited by child pages.
- DThe cq:tags property stores a single string value.
Why this is the answer
Tags reside under /content/cq:tags (or legacy /etc/tags) and are created via TagManager. They are not inherited and cq:tags is a string array.
- Question 9Interactive
Given this client-side custom event creation: new CustomEvent('aem:filterupdate', { detail: { key: 'color', value: 'red' } }). What is the correct way to listen for this event?
- Adocument.addEventListener('aem:filterupdate', handler)Correct answer
- BaddEventListener('CustomEvent', handler)
- CEventAdmin.onEvent('aem:filterupdate', handler)
- Dwindow.on('customEvent', handler)
Why this is the answer
CustomEvent creates a named event; to listen, use standard DOM addEventListener on the document or element with the same event name.
- Question 10Single Choice
What is the primary advantage of using a Job over an Event for long-running tasks?
- AJobs provide reliable, persistent execution with retries.Correct answer
- BEvents are more secure and require less configuration.
- CJobs can only run on publish instances.
- DEvents support parallel execution by default.
Why this is the answer
Jobs are persisted in the repository and can be retried, making them suitable for long-running or unreliable operations.
- Question 11Multiple Select
Which two patterns enable cross-component communication on the client side? (Select two)
- AUsing CustomEvent with addEventListenerCorrect answer
- BSetting window.globalState variable
- CUsing a shared event bus like EventEmitterCorrect answer
- DDirectly calling methods on other components
Why this is the answer
CustomEvent and a dedicated event bus decouple components; global variables and direct method calls create tight coupling.
Building Accessible and Responsive Sites
6 questions in this domain
- Question 12Single Choice
What does the CSS class 'aem-GridColumn--default--6' represent in the AEM Responsive Grid?
- AA column spanning 6 columns on the default breakpointCorrect answer
- BA column spanning 6 columns on the tablet breakpoint
- CA column offset of 6 on the default breakpoint
- DA row containing 6 default columns
Why this is the answer
The naming convention 'default--6' means the column spans 6 columns on the default (desktop) breakpoint.
- Question 13Multiple Select
According to WCAG 2.1 AA, which contrast ratios are required for normal and large text? (Select two)
- A4.5:1 for normal textCorrect answer
- B3:1 for large textCorrect answer
- C2:1 for normal text
- D4:1 for large text
Why this is the answer
WCAG 2.1 AA requires at least 4.5:1 contrast for normal text and 3:1 for large text.
- Question 14Interactive
Given the following JCR node structure, where must the 'cq:styleSystem' node be placed for the AEM Style System to work?
- AUnder the component's policy node in /confCorrect answer
- BUnder the component's resource node in /apps
- CUnder the template's jcr:content node
- DUnder the page node in /content
Why this is the answer
The Style System is configured at the template policy level, not at the component or page level.
- Question 15Single Choice
How should you translate UI strings like 'Read More' in an AEM component?
- AUse resource bundles placed under /apps/.../i18nCorrect answer
- BUse the Translation Integration Framework (TIF)
- CUse MSM rollout configurations
- DUse language copies with manual editing
Why this is the answer
Component UI strings are internationalized via resource bundles, not through TIF which is for page content.
- Question 16Multiple Select
Which conditions should a Sling Rewriter transformer check before injecting a canonical tag? (Select two)
- AThe response content type is HTMLCorrect answer
- BThe page property cq:noIndex is falseCorrect answer
- CThe page has a vanity URL configured
- DThe request contains query parameters
Why this is the answer
Canonical tags should only be injected for HTML responses and when the page is not marked noindex.
- Question 17Interactive
Given this RTE configuration snippet, what will be the effect on the 'link' plugin?
- AThe plugin remains active but no toolbar buttons appearCorrect answer
- BThe plugin is completely disabled and cannot be used
- CThe plugin shows its default toolbar buttons
- DThe configuration is invalid and causes an error
Why this is the answer
An empty 'features' array hides toolbar buttons but the plugin stays active; to disable it fully, omit the node.
Configuring AEM for a Project
8 questions in this domain
- Question 18Single Choice
What node type is used to store OSGi configurations in the AEM JCR repository?
- Asling:OsgiConfigCorrect answer
- Bnt:unstructured
- Ccq:Page
- Doak:Unstructured
Why this is the answer
OSGi configurations in AEM are stored using the sling:OsgiConfig node type, typically under config folders.
- Question 19Multiple Select
Which of the following are valid methods to configure OSGi components in AEM? (Select all that apply)
- AUsing the Web Console (ConfigMgr)Correct answer
- BCreating sling:OsgiConfig nodes via CRXDECorrect answer
- CDefining repoinit statements in a config.xml fileCorrect answer
- DSetting environment variables on the server
Why this is the answer
OSGi configs can be set via Web Console, sling:OsgiConfig nodes, or repoinit. Environment variables are not a direct method for AEM OSGi configs.
- Question 20Interactive
Given the following Query Builder predicate map, what does the query return? The snippet uses the 'property' predicate with 'operation=like'.
- AAll pages under /content that have a title starting with 'About'Correct answer
- BAll pages under /content with a title exactly equal to 'About'
- CAll resources under /content with a description containing 'About'
- DAll resources under /content that do not have a title
Why this is the answer
The predicate 'property.operation=like' performs a prefix match, so it retrieves nodes where the property starts with the given value.
- Question 21Single Choice
Where should a reverse replication agent be configured in AEM?
- AOn the author instance
- BOn the publish instanceCorrect answer
- COn the dispatcher server
- DOn a separate replication server
Why this is the answer
Reverse replication agents are configured on the publish instance to send content back to the author instance.
- Question 22Multiple Select
Which event types can trigger a workflow launcher in AEM? (Select all that apply)
- ACreatedCorrect answer
- BChangedCorrect answer
- CDeletedCorrect answer
- DWorkflow CompletedCorrect answer
Why this is the answer
Launchers listen to Created, Changed, Deleted, and WorkflowCompleted events as defined by the event type integers.
- Question 23Interactive
Examine the package filter configuration below. Which repository path will be included in the package? The XML excerpt shows the filter.xml content.
- A/apps/myprojectCorrect answer
- B/apps/myproject/components
- C/apps
- D/apps/myproject/config
Why this is the answer
The filter's root path is '/apps/myproject', and no sub-path excludes it, so the entire subtree under that path is included.
- Question 24Single Choice
In Multi-Site Manager (MSM), what is the direction of content inheritance?
- AFrom live copy to blueprint
- BFrom blueprint to live copyCorrect answer
- CBidirectional between blueprint and live copy
- DInheritance is disabled by default
Why this is the answer
MSM inheritance is one-way: changes in the blueprint can be rolled out to live copies; live copy changes do not propagate back.
- Question 25Multiple Select
Which privileges are necessary for a user to successfully publish a page from AEM author? (Select all that apply)
- Ajcr:readCorrect answer
- Bjcr:write
- Ccrx:replicateCorrect answer
- Djcr:all
Why this is the answer
To publish, a user needs read access to the page (jcr:read) and the replication privilege (crx:replicate). Write is not required for activation.
Site Administration and Content Management
8 questions in this domain
- Question 26Single Choice
What is the default maximum number of versions AEM keeps per page?
- A10
- B20Correct answer
- C50
- D100
Why this is the answer
AEM keeps up to 20 versions per page by default, as stated in the playbook document.
- Question 27Multiple Select
Which statements are correct regarding workflow participants in AEM? (Select all that apply)
- AWorkflow participants automatically have read and write access to the payload page.
- BThe assignment type can be configured so that any single user in a group can approve.Correct answer
- CParticipants require explicit JCR write permission on the content path to edit the payload.Correct answer
- DOnly users in the workflow-administrators group can be assigned as participants.
Why this is the answer
Workflow participants need explicit write permissions on the payload, and the assignment type can be set to 'Single Participant' (any one user). The other options are false.
- Question 28Interactive
In the provided dialog snippet, what is the name of the property that stores the link to the DAM asset?
- AimageReferenceCorrect answer
- BassetReference
- CdamReference
- Djcr:reference
Why this is the answer
The hidden field in the component dialog uses the name 'imageReference' to store the asset reference, as shown in the playbook example.
- Question 29Single Choice
Which framework acts as the bridge between AEM and third-party translation providers?
- ATranslation Integration Framework (TIF)Correct answer
- BMulti Site Manager (MSM)
- CLaunches
- DContextHub
Why this is the answer
The Translation Integration Framework (TIF) is the backbone that connects AEM to external translation services, as described in the playbook.
- Question 30Multiple Select
Which persistence modes are supported by ContextHub stores? (Choose all that apply.)
- AlocalCorrect answer
- BsessionCorrect answer
- CcookieCorrect answer
- Ddatabase
Why this is the answer
ContextHub supports local (localStorage), session (sessionStorage), and cookie persistence modes. 'Database' is not a supported persistence mode.
- Question 31Interactive
In the provided node definition, what mixin type is required for a node to be recognized as a custom report in AEM?
- Acq:ReportDefinitionCorrect answer
- Bcq:Page
- Csling:Folder
- Dnt:unstructured
Why this is the answer
A custom report definition node must have the mixin type 'cq:ReportDefinition' to be recognized by the AEM Dashboard, as stated in the playbook.
- Question 32Single Choice
What is the primary role of an AEM Launch in site management?
- AIt creates a temporary fork of the content tree for future updates.Correct answer
- BIt automatically publishes pages at a scheduled time.
- CIt manages multilingual content synchronization.
- DIt creates a live copy of a blueprint.
Why this is the answer
An AEM Launch creates a temporary fork of content for future promotion without affecting the live site. The other options describe different features (activation schedules, translation, MSM).
- Question 33Multiple Select
Which of the following are recommended for detecting inefficient JCR queries in AEM? (Select all that apply.)
- AQuery Performance toolCorrect answer
- Berror.logCorrect answer
- CReplication Agent dashboard
- DWorkflow Dashboard
Why this is the answer
The Query Performance tool and error.log are primary sources for detecting inefficient queries. The other dashboards serve different purposes (replication and workflow monitoring).
Frequently asked questions
Everything about the Adobe Certified Expert - Adobe Experience Manager Sites Developer question bank and how to use it.