CINXE.COM
Facts and Figures
<!DOCTYPE html> <html dir="ltr" lang="en-US"> <head> <meta charset="utf-8"> <!-- This website is powered by TYPO3 - inspiring people to share! TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL. TYPO3 is copyright 1998-2025 of Kasper Skaarhoj. Extensions are copyright of their respective owners. Information and contribution at https://typo3.org/ --> <title>Facts and Figures</title> <meta name="generator" content="TYPO3 CMS" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta property="og:site_name" content="TU Delft" /> <meta property="og:type" content="website" /> <meta property="og:title" content="Facts and Figures" /> <meta property="og:image" content="https://filelist.tudelft.nl/_processed_/0/c/csm_feitencijfers_2e5f95c9e8.jpg" /> <meta name="twitter:card" content="summary" /> <meta name="google-site-verification" content="vShvXo6q-uO9k9SNJyGlW9uV3m6LmjyO00PR-Ts7hYQ" /> <link rel="stylesheet" type="text/css" href="/typo3conf/ext/site_tud/Resources/Public/StyleSheets/dist.style.e19d9d9b36.min.css" media="all"> <script src="/typo3conf/ext/tud_styling/Resources/Public/JavaScript/Vendor/modernizr.min.js"></script> <script src="/typo3temp/assets/js/6d999f1aea.js"></script> <script type="text/javascript"> var _wfl={fonts:[ {family:"roboto", weight: 300}, {family:"roboto", weight: 100}, ],isLoaded:function(){return document.cookie.indexOf("fontsLoaded")>=0},afterLoad:function(){document.documentElement.className+=" fontsLoaded",document.cookie="fontsLoaded=1; path=/"}};!function(){var e;if(_wfl.isLoaded())_wfl.afterLoad();else if(void 0!==document.fonts&&void 0!==window.Promise){document.fonts.onloadingerror=function(){console.error("Font error",arguments)};var o=_wfl.fonts.map(function(e){return e.family});e=document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",e);var n=[];document.fonts.forEach(function(e){o.indexOf(e.family)>=0&&n.push(e.load())}),Promise.all(n).then(_wfl.afterLoad)})}else{var n=document.createElement("script");n.type="text/javascript",n.src= "/typo3conf/ext/tud_styling/Resources/Public/JavaScript/Vendor/asyncfontloader.min.js" ,n.async=!0,e=window.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",e),document.head.appendChild(n)})}}();</script><style> .nav-tab a.is-active { color: white !important; } a.is-active {background-color: #00a6d6;} .paging a.is-active {color:white; background-color: #BABABA; border-color: #BABABA;} .tab--red a.is-active {background-color: #E21A1A;} .tab--green a.is-active {background-color: #A5CA1A;} .tab--black a.is-active {background-color: #222;} .tab--white a.is-active {background-color: #fff; color:#000;} .tab--blue_lighter a.is-active {background-color: #D9F0F6;} .tab--blue_light a.is-active {background-color: #6EBBD5;} .tab--blue_dark a.is-active {background-color: #1E6188;} .tab--teal a.is-active {background-color: #008891;} .tab--yellow a.is-active {background-color: #FFC400;} .tab--orange a.is-active {background-color: #E64616;} .tab--purple a.is-active {background-color: #1C1C73;} .tab--purple_light a.is-active {background-color: #6D177F;} .tab--grey_dark a.is-active {background-color: #505050;} .tab--grey a.is-active {background-color: #9B9B9B;} .tab--grey_medium a.is-active {background-color: #BABABA;} .tab--grey_light a.is-active {background-color: #E7E7E7; color:#000;} .tab--pink a.is-active {background-color: #DB028C;} .nav-tab { font-family: 'Roboto Slab', Roboto; } .nav-tab a { padding: .5rem .5rem 0.3rem; } .nav-tab~* { border: 0; } </style> <style> /* no-padding fix */ .grid--noPaddingBottom) > * {padding-bottom: 0.1rem;} /* .contrast .nav-inline .horizontalTiny overflow fix */ .contrast .nav-inpage .card--horizontalTiny {overflow-y: hidden !important;} /* .i-search fix */ /* .nav-main .i-search span {display: initial;} */ /* flexbox referenties fix */ .row--equalHeightContentElements > div > .frame-type-shortcut { flex-grow: 1; display: inherit; } /* linkkleur in zwarte magazine nav */ .bg-black.magazine-navigation a {color:white;} /* contrast patch voor dynamic header */ /* .contrast .dynamicHeader-slideLink { background-color: #000d; border-radius: 3px; padding-left: 5px; } .contrast .dynamicHeader-slideTitle, .contrast .dynamicHeader-slideDescription { color: white; } */ /* Twitter / X icon */ i-twitter-after::after, .i-twitter::before { content: ""; width: 22px; height: 22px; } /* white ghost button text on hover fix */ .btn--ghost:hover.btn--white:hover {color: black !important;} .contrast .btn--ghost:hover.btn--white:hover {color: white !important;} /* Grid Card background fix */ .grid-background--black .card__img + .card__content {color:black;} .grid-background--black .label {color:#999;} /* Transparent topnav fixes */ .bg-transparent .nav-main__mainitem>a {text-shadow: 0px 0px 3px #888;} .bg-transparent .btn--languageSwitch:after, .bg-transparent .i-search:after {box-shadow: 0 0 2px #888, 0 0 1px #888 inset;} .bg-transparent .icon-languageSwitch, .bg-transparent .btn--icon:before {filter: drop-shadow(0px 0px 4px lightgrey);} .carousel .btn--round, .carousel .slick-arrow {filter: drop-shadow(0px 0px 3px #888);} /* Accordion title fix */ .accordion__title:before {font-size: .7rem;padding: .4rem;} /* Card text size reduction */ .frame-type-lookup_results .card__content:not(h3){font-size: .9rem;} .user-content h3 {margin-top:initial;} /* Blockquote edits*/ .frame-type-sitetud_quote>div{clear:both;} /* blockquote {float:none; padding-top: .5em; padding-bottom: 0;} */ /* disabled on 29-1-2024 */ blockquote cite {margin-top: 0rem; margin-bottom: 10px;} blockquote img {margin-top: -10px;} img + cite {margin-top: 2.5rem;margin-bottom: 2.5em} blockquote.quote-title-size--large img {margin-top:-30px;} blockquote.quote-title-size--medium img + cite {margin-bottom: 3em;} blockquote.quote-title-size--medium p {line-height:1.5;} /* Fix of header slider loading issues */ /*.poster {display:none;} .poster.is-loaded {display:block;} .headerBanner-content {display:initial;}*/ /* Form fixes */ .tx-powermail .checkbox, .tx-powermail .radio {display:block !important;} form {max-width: 100%;} /* blauwe link in cookiemelding */ .cookieNotice a {color: #00a6d6 ;} .cookieNotice .statement_expand:hover {color: #0066a2; text-decoration: underline dotted;} /* Huisstijlfixes */ button.accordion__button {font-family:'Roboto Slab';} .accordion__title {font-family:'Roboto Slab';} /* override align-justify in text-elements (WCAG) */ .frame-type-text .align-justify , p.align-justify {text-align: initial;} /* Spotler form layout */ .mpFormTable, .mpFormTable table {width:100%;} .mpFormLabel {width:30%;} .mpFormField {width:70%;} .mpFormTable .sublabel {font-size: .7em; font-style: italic;} /* .submitCellSpacer {display:none;} */ .mpFormTable li {list-style: none;} .mpFormTable ul {padding-inline-start: 0;} .mpMultipleLabel {margin-left:10px;} /* aside column fix on mobiles */ @media only screen and (max-width: 1024px) { .u-flex {flex-direction: column;} .u-flex.js-contrastChanger {flex-direction: initial;} } /* .accordion padding */ .accordion .grid > * {padding-bottom: initial;} /* magazine styling .bg-white.magazine-navigation .magazine-navigation-logoLink.btn--icon::after {border: 1px solid #222;} .bg-black.magazine-navigation a {color: #fff;} .bg-transparent.magazine-navigation {background: linear-gradient(#fffb 10%, #00a6d675);} .bg-transparent.magazine-navigation .magazine-navigation-logoLink.btn--icon::after {border: 1px solid #00a6d6;} .bg-transparent.magazine-navigation a {color: #00a6d6;} @media only screen and (max-width: 25.2em) {.magazine-navigation {bottom: 7.5rem;}} .nav-overlay.nav-overlay-magazine.is-active {background-color: #0c2340e8; padding:4rem; left:15vw; right:15vw; top:10vh; bottom:20vh} */ /* show-for-xlarge on chrome */ @media screen and (min-width:79.9375em) and (max-width:80em) { .show-for-xlarge { display:initial !important; } } /* zwart font voor witte buttons */ .btn--white {color: #222;} @media print { .nav-bottom {display: none;} } /* border-radius dynamic-header blocks */ .dynamicHeader-block {border-radius: 3px;} /* border-radius fix for header */ .dynamicHeader-slideGradient {border-radius: initial;} /* icons on popup menu */ /* @media only screen and (max-width:350px) { .nav-overlay__container .frame-type-sitetud_socialmedialinks .list-inline { --column-amount: 4; display: grid; grid-template-columns: repeat(var( --column-amount), 0fr); grid-gap: 0; place-items: center; margin: 0; justify-content: center; padding-top: 3em; }} @media only screen and (min-width:350px) and (max-width: 450px){ .nav-overlay__container .frame-type-sitetud_socialmedialinks .list-inline { --column-amount: 6; display: grid; grid-template-columns: repeat(var( --column-amount), 0fr); grid-gap: 0; place-items: center; margin: 0; justify-content: center; padding-top: 3em; }} @media only screen and (min-width:450px){ .nav-overlay__container .frame-type-sitetud_socialmedialinks .list-inline { padding-top:3em; } } */ /* adjusting footernav on mobile */ @media only screen and (max-width:405px) { .nav-bottom .logo {width: 100%; position: relative; display: grid; justify-content: center; padding-bottom: 0.3em; border-right: initial;} .nav-bottom .logo.left { border-bottom: 1px solid #fff; } } .contrast .dynamicHeader-block--blue h3, .contrast .dynamicHeader-block--blue p, .contrast .dynamicHeader-block--blue p .linepix {color: #fff;} .contrast .dynamicHeader-block--blue {background-color : #0C2340; color:#fff;} /* WCAG fix footer */ .pageFooter p a {display: inline-block;} /* WCAG fix voor bullet navigation */ .contrast .content-slider__bullet, .contrast .slick-dots button { width: 24px; height: 24px; margin: 0 5px; } .contrast .content-slider__bullet--active {background-color:#505050} .contrast .content-slider__bullet--active:hover {background-color:#222} /* WCAG fix voor witte social buttons */ .contrast .frame-type-sitetud_socialmedialinks .btn--icon {filter: invert(1);} </style> <style> .profile a:not(.btn--icon) {color: #00a6d6;} .profile {color:#222;} /* alle contactblokken met 2 regels voor de naam */ .profile .box h3 {min-height:54.6px;} </style> <script type="text/javascript">var cookieNoticeConfig = cookieNoticeConfig || {};cookieNoticeConfig.flags = {};cookieNoticeConfig.flags.EXTERNAL = 3;cookieNoticeConfig.flags.ANALYTICAL = 50;cookieNoticeConfig.labels = {statement_short: 'This%20website%20uses%20cookies.%20By%20clicking%20%22accept%22%20you%20give%20your%20permission%20to%20this%20website%20to%20use%20cookies.',statement_detail: 'Delft%20University%20of%20Technology%20collects%20visitor%20information%20to%20optimize%20the%20website%2C%20thereby%20further%20improving%20its%20service%20provision.%20This%20information%20is%20not%20linked%20to%20individuals%20and%20cannot%20be%20used%20to%20for%20unsolicited%2Funwanted%20telemarketing%20or%20e-mails.%3Cbr%20%2F%3E%3Cbr%20%2F%3E%20Additionally%2C%20Delft%20University%20of%20Technology%20may%20use%20external%20content%20to%20enrich%20user%20experiences%3B%20this%20content%20may%20contain%20third%20party%20cookies%2C%20from%20f.e.%20social%20media%20platforms.%20Without%20your%20consent%2C%20we%20will%20obscure%20these%20features.',statement_expand: 'What%20are%20cookies%3F',agree: 'Accept',link_policy: 'More%20information%20regarding%20your%20privacy%20and%20cookies%20is%20available%20in%20our%20policy%20statement.',disagree: 'Deny'};cookieNoticeConfig.hitsBeforeImplicitConsent =-1;cookieNoticeConfig.cookiePolicyDetailPage = '/en/cookie-policy';cookieNoticeConfig.consentChangeCallbacks = [];cookieNoticeConfig.showDisagreeButton =true;cookieNoticeConfig.expiresInMonths =6;cookieNoticeConfig.defaultCookieLevel =1;cookieNoticeConfig.consentedCookieName = '__cookieNotice_consent';cookieNoticeConfig.hitCountCookieName = '__cookieNotice_hit';</script><script type="text/javascript">var tx_solr_suggestUrl = '/?eID=tx_solr_suggest&id=5338';</script><script type="text/javascript"> (function () { if (document.cookie.indexOf("contrast") >= 0) { document.documentElement.className += " contrast"; } }());</script><link rel="apple-touch-icon" sizes="57x57" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-180x180.png"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/android-chrome-192x192.png" sizes="192x192"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon-16x16.png" sizes="16x16"> <link rel="manifest" href="/typo3conf/ext/tud_styling/Resources/Public/img/manifest.json"> <link rel="mask-icon" href="/typo3conf/ext/tud_styling/Resources/Public/img/safari-pinned-tab.svg" color="#5bbad5"> <link rel="shortcut icon" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon.ico"> <meta name="msapplication-TileColor" content="#2d89ef"> <meta name="msapplication-TileImage" content="/typo3conf/ext/tud_styling/Resources/Public/img/mstile-144x144.png"> <meta name="msapplication-config" content="/typo3conf/ext/tud_styling/Resources/Public/img/browserconfig.xml"> <meta name="theme-color" content="#ffffff"> <link rel="canonical" href="https://www.tudelft.nl/en/about-tu-delft/organisation/facts-and-figures"/> <link rel="alternate" hreflang="nl-NL" href="https://www.tudelft.nl/citg/over-faculteit/feiten-en-cijfers"/> <link rel="alternate" hreflang="en-US" href="https://www.tudelft.nl/en/ceg/about-faculty/facts-and-figures"/> <link rel="alternate" hreflang="x-default" href="https://www.tudelft.nl/citg/over-faculteit/feiten-en-cijfers"/> <!-- This site is optimized with the Yoast SEO for TYPO3 plugin - https://yoast.com/typo3-extensions-seo/ --> <script type="application/ld+json">[{"@context":"https:\/\/www.schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/","name":"Delft University of Technology"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/faculties-services","name":"Faculties & Services"}},{"@type":"ListItem","position":3,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg","name":"Civil Engineering and Geosciences"}},{"@type":"ListItem","position":4,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg\/about-faculty","name":"About the faculty"}},{"@type":"ListItem","position":5,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/about-tu-delft\/organisation\/facts-and-figures","name":"Facts and Figures"}}]}]</script> </head> <body class="page-5338"> <script type="text/javascript"> /*<![CDATA[*/ cookieNoticeConfig.consentChangeCallbacks.push({ type: cookieNoticeConfig.flags.ANALYTICAL, callback: function () { (function() { var sz = document.createElement('script'); sz.type = 'text/javascript'; sz.async = true; sz.src = '//siteimproveanalytics.com/js/siteanalyze_6005654.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sz, s); })(); } }); /*]]>*/ </script><script id="powermail_conditions_container" data-condition-uri="https://www.tudelft.nl/en/ceg/about-faculty/facts-and-figures/?type=3132"></script><style> .card--no_image.card--red,.btn--ghost.btn--red:hover, .highlight--vertical .highlight--red, .highlight--red::after, .hoverableBlock--red::after,[class*="--red"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--red, .content-slider--red, .card--red, .accordion__title--red, .nav-inpage--red) {background-color: #E03C31;} .card--no_image.card--green, .btn--ghost.btn--green:hover, .highlight--vertical .highlight--green, .highlight--green::after, .hoverableBlock--green::after,[class*="--green"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--green, .content-slider--green, .card--green, .accordion__title--green, .nav-inpage--green ) {background-color: #6CC24A;} .card--no_image.card--blue_dark,.btn--ghost.btn--blue_dark:hover, .highlight--vertical .highlight--blue_dark, .highlight--blue_dark::after, .hoverableBlock--blue_dark::after,[class*="--blue_dark"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--blue_dark, .content-slider--blue_dark, .card--blue_dark, .accordion__title--blue_dark, .nav-inpage--blue_dark) {background-color: #0C2340;} .card--no_image.card--yellow, .btn--ghost.btn--yellow:hover, .highlight--vertical .highlight--yellow, .highlight--yellow::after, .hoverableBlock--yellow::after,[class*="--yellow"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--yellow, .content-slider--yellow, .card--yellow, .accordion__title--yellow, .nav-inpage--yellow) {background-color: #FFB81C;} .card--no_image.card--orange, .btn--ghost.btn--orange:hover, .highlight--vertical .highlight--orange, .highlight--orange::after, .hoverableBlock--orange::after,[class*="--orange"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--orange, .content-slider--orange, .card--orange, .accordion__title--orange, .nav-inpage--orange), .btn:not(.btn--ghost).btn--orange {background-color: #EC6842;} .card--no_image.card--purple, .btn--ghost.btn--purple:hover, .highlight--vertical .highlight--purple, .highlight--purple::after, .hoverableBlock--purple::after,[class*="--purple"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--purple, , .content-slider--purple, .card--purple, .accordion__title--purple, .nav-inpage--purple) {background-color: #6F1D77;} .card--no_image.card--purple_light, .btn--ghost.btn--purple_light:hover, .highlight--vertical .highlight--purple_light, .highlight--purple_light::after, .hoverableBlock--purple_light::after, [class*="--purple_light"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--purple_light, .content-slider--purple_light, .card--purple_light, .accordion__title--purple_light, .nav-inpage--purple_light) {background-color: #6F1D77;} .card--no_image.card--pink, .btn--ghost.btn--pink:hover, .highlight--vertical .highlight--pink, .highlight--pink::after, .hoverableBlock--pink::after, [class*="--pink"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--pink, .content-slider--pink, .card--pink, .accordion__title--pink, .nav-inpage--pink ) {background-color: #EF60A3;} .card--no_image.card--teal, .btn--ghost.btn--teal:hover, .highlight--vertical .highlight--teal, .highlight--teal::after, .hoverableBlock--teal::after, [class*="--teal"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--teal, .content-slider--teal, .card--teal, .accordion__title--teal, .nav-inpage--teal) {background-color: #00B8C8;} .btn:not(.btn--ghost).btn--orange:hover {background-color: #222;} .btn--ghost.btn--red, .notice--red .btn:not(.btn--ghost), .fact [class*="-red"] {color:#E03C31;} .btn--ghost.btn--green, .notice--green .btn:not(.btn--ghost), .fact [class*="-green"] {color:#6CC24A;} .btn--ghost.btn--blue_dark, .notice--blue_dark .btn:not(.btn--ghost), .fact [class*="-blue_dark"] {color:#0C2340;} .btn--ghost.btn--yellow, .notice--yellow .btn:not(.btn--ghost), .fact [class*="-yellow"] {color:#FFB81C;} .btn--ghost.btn--orange, .notice--orange .btn:not(.btn--ghost), .fact [class*="-orange"] {color:#EC6842;} .btn--ghost.btn--purple, .notice--purple .btn:not(.btn--ghost), .fact [class*="-purple"] {color:#6F1D77;} .btn--ghost.btn--purple_light, .notice--purple_light .btn:not(.btn--ghost), .fact [class*="-purple_light"] {color:#6F1D77;} .btn--ghost.btn--pink, .notice--pink .btn:not(.btn--ghost), .fact [class*="-pink"] {color:#EF60A3;} .btn--ghost.btn--teal, .notice--teal .btn:not(.btn--ghost), .fact [class*="-teal"] {color:#00B8C8;} .dynamicHeader-block--red {background-color: rgba(224, 60, 49, var(--block-opacity))} .dynamicHeader-block--green {background-color: rgba(108, 194, 74, var(--block-opacity))} .dynamicHeader-block--blue_dark {background-color: rgba(12, 35, 64, var(--block-opacity))} .dynamicHeader-block--yellow {background-color: rgba(255, 184, 28, var(--block-opacity))} .dynamicHeader-block--orange {background-color: rgba(237, 104, 66, var(--block-opacity))} .dynamicHeader-block--purple {background-color: rgba(111, 29, 119, var(--block-opacity))} .dynamicHeader-block--purple_light {background-color: rgba(111, 29, 119, var(--block-opacity))} .dynamicHeader-block--pink {background-color: rgba(239, 96, 163, var(--block-opacity))} .dynamicHeader-block--teal {background-color: rgba(0, 184, 200, var(--block-opacity))} .card--red h3 {color:#E03C31;} .card--red.card--horizontalTiny .card__content::after, .card--red::after, .card--red.card--no_image[href]::after {background-color:#E03C31;} .card--green h3 {color:#6CC24A;} .card--green.card--horizontalTiny .card__content::after, .card--green::after, .card--green.card--no_image[href]::after {background-color:#6CC24A;} .card--blue_dark h3 {color:#0C2340;} .card--blue_dark.card--horizontalTiny .card__content::after, .card--blue_dark::after, .card--blue_dark.card--no_image[href]::after {background-color:#0C2340;} .card--yellow h3 {color:#FFB81C;} .card--yellow.card--horizontalTiny .card__content::after, .card--yellow::after, .card--yellow.card--no_image[href]::after {background-color:#FFB81C;} .card--orange h3 {color:#EC6842;} .card--orange.card--horizontalTiny .card__content::after, .card--orange::after, .card--orange.card--no_image[href]::after {background-color:#EC6842;} .card--purple h3 {color:#6F1D77;} .card--purple.card--horizontalTiny .card__content::after, .card--purple::after, .card--purple.card--no_image[href]::after {background-color:#6F1D77;} .card--purple_light h3 {color:#6F1D77;} .card--purple_light.card--horizontalTiny .card__content::after, .card--purple_light::after, .card--purple_light.card--no_image[href]::after {background-color:#6F1D77;} .card--pink h3 {color:#EF60A3;} .card--pink.card--horizontalTiny .card__content::after, .card--pink::after, .card--pink.card--no_image[href]::after {background-color:#EF60A3;} .card--teal h3 {color:#00B8C8;} .card--teal.card--horizontalTiny .card__content::after, .card--teal::after, .card--teal.card--no_image[href]::after {background-color:#00B8C8;} .divider--red, .nav-inpage.nav-inpage--red {border-color:#E03C31;} .divider--green, .nav-inpage.nav-inpage--green {border-color:#6CC24A;} .divider--blue_dark, .nav-inpage.nav-inpage--blue_dark {border-color:#0C2340;} .divider--yellow, .nav-inpage.nav-inpage--yellow {border-color:#FFB81C;} .divider--orange, .nav-inpage.nav-inpage--orange {border-color:#EC6842;} .divider--purple_light, .nav-inpage.nav-inpage--purple_light {border-color:#6F1D77;} .divider--purple, .nav-inpage.nav-inpage--purple {border-color:#6F1D77;} .divider--pink, .nav-inpage.nav-inpage--pink {border-color:#EF60A3;} .divider--teal, .nav-inpage.nav-inpage--teal {border-color:#00B8C8;} .tab--blue_dark a {color: white;} </style> <a href="#" class="skiplink btn btn--single align-center btn--grey_dark u-flex js-contrastChanger"> <svg role="presentation" class="icon-contrast"> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/contrast-icon.svg#contrast-icon"></use> </svg> <span class="js-contrastChanger-label" data-highcontrasttext="Activate high contrast" data-normalcontrasttext="Activate normal contrast"> Activate high contrast </span> </a> <a href="#main" class="skiplink btn btn--single align-center btn--grey_dark"> To main content </a> <!-- Add logo as early as possible in HTML so placeholder renders correctly --> <svg class="hidden" xmlns="http://www.w3.org/2000/svg"> <symbol id="logo" viewBox="0 0 105 41"> <path fill="currentColor" fill-rule="evenodd" d="M30.5 36.73c2.62 0 4.03-1.74 4.03-4.18V20.12h5.56v12.71c-.06 5.6-4.53 7.8-9.59 7.8-5.05 0-9.53-2.2-9.58-7.8v-12.7h5.55v12.42c0 2.44 1.42 4.18 4.03 4.18M77.18 33.73v-1.31c0-3.87-2.2-6.6-6.15-6.6-4.41 0-6.47 3.42-6.47 7.52 0 4.12 1.78 7.29 6.25 7.29 3.34 0 5.78-1.59 6.2-4.76h-2.78c-.3 2.03-1.33 2.84-3.39 2.84-2.7 0-3.59-2.4-3.59-4.98h9.93zm-9.87-1.84c.02-2.18 1.34-4.15 3.53-4.15 2.55 0 3.55 1.76 3.55 4.15h-7.08zM80.37 20.12h2.65v20.1h-2.65v-20.1zM6.53 40.21h5.55V24.02h6.22v-3.9H.3v3.9h6.23v16.2M19.87 10.34c-1.35.42-2.75.08-2.75-1.73 0-2.77 6.49-5.09 7.4-7.5.21-.61.23-1.1-.06-1.1-.2.02-.04.32-.5.78-2.69 2.69-7.19 2.68-10.65 4.24-2.26 1.02-8.9 4.15-7.37 11.13.07.33.27 1.44.47 1.44.24 0 .23-.66.23-1.46-.05-4.16 4.86-5.32 6.46-8.04.2-.32.52-.77.6-.56.04.1.01.25-.05.54-.5 2.23-2.83 3.66-2.17 5.26.85 2.07 3.32.53 4.08-.8.2-.37.32-.6.46-.56.1.04.1.46.03.84-.4 2.4-.96 3.75-2.71 5.12-.56.43-1.44.52-1.33.86.03.09.41.08.71.05 4.68-.3 8.59-5.82 9.62-9.43.11-.25.14-.5.03-.58-.14-.1-.35.14-.56.33-.53.47-1.26.96-1.94 1.17M91.29 40.21V28.08h3.22v-1.84h-3.22V24c0-1.62.78-1.9 2.28-1.9.44 0 .89.06 1.33.09v-2.2a8.59 8.59 0 00-1.89-.28c-2.5 0-4.36 1.26-4.36 3.93v2.61h-2.72v1.84h2.72v12.13h2.64M96.03 26.24v1.84h2.38v8.9c0 1.86.03 3.65 3.95 3.65.61 0 1.18-.06 1.8-.17v-2.03c-.42.1-.96.17-1.38.17-.95 0-1.72-.48-1.72-1.48v-9.04h3.22v-1.84h-3.22v-3.8l-2.65.83v2.98h-2.38M48.43 22.51h4.1c4.64 0 6.56 3.5 6.56 7.66 0 4.15-1.92 7.65-6.56 7.65h-4.1v-15.3zm-2.79 17.7h6.9c8.57 0 9.47-7.27 9.47-10.04 0-2.77-.9-10.05-9.48-10.05h-6.89v20.1z"/> </symbol> </svg> <nav class="bg-blue nav-top"> <div class="container no-spacing"> <a class="logo left" href="/en/"> <svg focusable="false" class="logo-tudelft--top" role="img"> <use xlink:href="#logo"></use> </svg> <span class="text-hide">Home of TU Delft</span> </a> <div class="right"> <div class="nav-main"> <ul><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg">Home</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/research/stories-of-science">Stories of Science</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/education">Education</a><ul class="nav-main__submenu"><li><a href="/en/ceg/education/bachelor-programmes">Bachelor programmes</a></li><li><a href="/en/ceg/education/master-programmes">Master programmes</a></li><li><a href="/en/ceg/education/online-education">Online education</a></li><li><a href="/en/ceg/education/minors">Minors</a></li><li><a href="/en/ceg/education/student-stories">Student Stories</a></li><li><a href="/en/ceg/education/postgraduates">Postgraduates</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/research">Research</a><ul class="nav-main__submenu"><li><a href="/en/ceg/research/stories-of-science">Stories of Science</a></li><li><a href="/en/ceg/research/professors">Professors</a></li><li><a href="/en/ceg/research/delft-research-initiatives">Delft Research Initiatives</a></li><li><a href="/en/ceg/research/research-institutes">Research institutes</a></li><li><a href="/en/ceg/research/sector-plan">Sector plan</a></li><li><a href="/en/ceg/research/graduate-school">Graduate School</a></li><li><a href="/en/ceg/research/publications">Publications</a></li><li><a href="/en/ceg/research/research-assessments">Research Assessments</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/cooperation">Cooperation</a><ul class="nav-main__submenu"><li><a href="/en/ceg/cooperation/strategic-partnership">Strategic partnership</a></li><li><a href="/en/ceg/cooperation/internship-or-graduation">Internship or graduation</a></li><li><a href="/en/ceg/cooperation/contribution-to-education">Contribution to education</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/current">Current</a><ul class="nav-main__submenu"><li><a href="/en/ceg/current/latest-news">Latest news</a></li><li><a href="/en/ceg/current/awards-and-publications">Awards and publications</a></li><li><a href="/en/ceg/current/agenda">Agenda</a></li><li><a href="/en/ceg/current/in-the-media">In the media</a></li><li><a href="/en/ceg/current/ceg-on-social-media">CEG on Social Media</a></li><li><a href="/en/ceg/current/press-information">Press information</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty">About the faculty</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/dean">Dean</a></li><li><a href="/en/ceg/about-faculty/departments">Departments</a></li><li><a href="/en/ceg/about-faculty/laboratories">Laboratories</a></li><li><a href="/en/community/alumni">Alumni</a></li><li><a href="/en/ceg/about-faculty/associations-and-societies">Associations and societies</a></li><li><a href="/en/ceg/about-faculty/working-at-our-faculty">Working at our faculty</a></li><li><a href="/en/ceg/about-faculty/diversity-inclusion-team">Diversity & Inclusion Team</a></li><li><a href="/en/ceg/about-faculty/facts-and-figures">Facts and Figures</a></li><li><a href="/en/ceg/about-faculty/contact-and-map">Contact and map</a></li></ul></li></ul> <a href="/citg/over-faculteit/feiten-en-cijfers" title="Schakel over naar de Nederlandse taal" class="btn--icon btn--languageSwitch" lang="nl"> <div class="icon-languageSwitch icon-languageSwitch--en"></div> </a> <button data-target=".nav-search" class="button-reset btn--icon i-search js-modal"> <span class="text-hide">Search</span> </button> </div> </div> </div> </nav> <nav class="nav-overlay"> <div class="container no-spacing"> <ul class="list-reset nav-overlay__container"><li id="nav-overlay__mainitem--21171" data-priority="0"><div class="nav-overlay__mainitem"><a href="/en/ceg">Home</a></div></li><li id="nav-overlay__mainitem--60144" data-priority="0"><div class="nav-overlay__mainitem"><a href="/en/ceg/research/stories-of-science">Stories of Science</a></div></li><li id="nav-overlay__mainitem--15996" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/education">Education</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/education/bachelor-programmes" id="nav-overlay__subitem--16001" class="nav-overlay__subitem">Bachelor programmes</a></li><li class="sm-12"><a href="/en/ceg/education/master-programmes" id="nav-overlay__subitem--16002" class="nav-overlay__subitem">Master programmes</a></li><li class="sm-12"><a href="/en/ceg/education/online-education" id="nav-overlay__subitem--16003" class="nav-overlay__subitem">Online education</a></li><li class="sm-12"><a href="/en/ceg/education/minors" id="nav-overlay__subitem--16005" class="nav-overlay__subitem">Minors</a></li><li class="sm-12"><a href="/en/ceg/education/student-stories" id="nav-overlay__subitem--67132" class="nav-overlay__subitem">Student Stories</a></li><li class="sm-12"><a href="/en/ceg/education/postgraduates" id="nav-overlay__subitem--16006" class="nav-overlay__subitem">Postgraduates</a></li></ul></li><li id="nav-overlay__mainitem--15997" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/research">Research</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/research/stories-of-science" id="nav-overlay__subitem--16037" class="nav-overlay__subitem">Stories of Science</a></li><li class="sm-12"><a href="/en/ceg/research/professors" id="nav-overlay__subitem--16192" class="nav-overlay__subitem">Professors</a></li><li class="sm-12"><a href="/en/ceg/research/delft-research-initiatives" id="nav-overlay__subitem--16040" class="nav-overlay__subitem">Delft Research Initiatives</a></li><li class="sm-12"><a href="/en/ceg/research/research-institutes" id="nav-overlay__subitem--24004" class="nav-overlay__subitem">Research institutes</a></li><li class="sm-12"><a href="/en/ceg/research/sector-plan" id="nav-overlay__subitem--121647" class="nav-overlay__subitem">Sector plan</a></li><li class="sm-12"><a href="/en/ceg/research/graduate-school" id="nav-overlay__subitem--16041" class="nav-overlay__subitem">Graduate School</a></li><li class="sm-12"><a href="/en/ceg/research/publications" id="nav-overlay__subitem--16042" class="nav-overlay__subitem">Publications</a></li><li class="sm-12"><a href="/en/ceg/research/research-assessments" id="nav-overlay__subitem--50125" class="nav-overlay__subitem">Research Assessments</a></li></ul></li><li id="nav-overlay__mainitem--15998" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/cooperation">Cooperation</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/cooperation/strategic-partnership" id="nav-overlay__subitem--16137" class="nav-overlay__subitem">Strategic partnership</a></li><li class="sm-12"><a href="/en/ceg/cooperation/internship-or-graduation" id="nav-overlay__subitem--16139" class="nav-overlay__subitem">Internship or graduation</a></li><li class="sm-12"><a href="/en/ceg/cooperation/contribution-to-education" id="nav-overlay__subitem--16142" class="nav-overlay__subitem">Contribution to education</a></li></ul></li><li id="nav-overlay__mainitem--15999" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/current">Current</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/current/latest-news" id="nav-overlay__subitem--16150" class="nav-overlay__subitem">Latest news</a></li><li class="sm-12"><a href="/en/ceg/current/awards-and-publications" id="nav-overlay__subitem--158105" class="nav-overlay__subitem">Awards and publications</a></li><li class="sm-12"><a href="/en/ceg/current/agenda" id="nav-overlay__subitem--16151" class="nav-overlay__subitem">Agenda</a></li><li class="sm-12"><a href="/en/ceg/current/in-the-media" id="nav-overlay__subitem--16152" class="nav-overlay__subitem">In the media</a></li><li class="sm-12"><a href="/en/ceg/current/ceg-on-social-media" id="nav-overlay__subitem--16156" class="nav-overlay__subitem">CEG on Social Media</a></li><li class="sm-12"><a href="/en/ceg/current/press-information" id="nav-overlay__subitem--16155" class="nav-overlay__subitem">Press information</a></li></ul></li><li id="nav-overlay__mainitem--16000" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/about-faculty">About the faculty</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/about-faculty/dean" id="nav-overlay__subitem--16190" class="nav-overlay__subitem">Dean</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments" id="nav-overlay__subitem--16189" class="nav-overlay__subitem">Departments</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/laboratories" id="nav-overlay__subitem--16194" class="nav-overlay__subitem">Laboratories</a></li><li class="sm-12"><a href="/en/community/alumni" id="nav-overlay__subitem--160643" class="nav-overlay__subitem">Alumni</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/associations-and-societies" id="nav-overlay__subitem--16196" class="nav-overlay__subitem">Associations and societies</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/working-at-our-faculty" id="nav-overlay__subitem--16207" class="nav-overlay__subitem">Working at our faculty</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/diversity-inclusion-team" id="nav-overlay__subitem--173728" class="nav-overlay__subitem">Diversity & Inclusion Team</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/facts-and-figures" id="nav-overlay__subitem--5338" class="nav-overlay__subitem">Facts and Figures</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/contact-and-map" id="nav-overlay__subitem--16208" class="nav-overlay__subitem">Contact and map</a></li></ul></li><li> <div class="t3ce frame-type-sitetud_socialmedialinks "> <h3 class="text-hide">Dit is het social media blok</h3> <ul class="list-inline"> <li> <a href="https://twitter.com/TUDelft_CT" target="_blank" class="btn--icon i-twitter" rel="noreferrer"> <span class="text-hide"> twitter </span> </a> </li> <li> <a href="https://www.linkedin.com/school/tu-delft-civil-engineering-geosciences/" target="_blank" class="btn--icon i-linkedin" rel="noreferrer"> <span class="text-hide"> linkedin </span> </a> </li> <li> <a href="https://www.instagram.com/ceg.tudelft/" target="_blank" class="btn--icon i-instagram" rel="noreferrer"> <span class="text-hide"> instagram </span> </a> </li> <li> <a href="https://www.youtube.com/user/FaculteitCiTG" target="_blank" class="btn--icon i-youtube" rel="noreferrer"> <span class="text-hide"> youtube </span> </a> </li> <li> <a href="https://api.whatsapp.com/send?phone=31638351565" target="_blank" class="btn--icon i-whatsapp hide-for-xxlarge" rel="noreferrer"> <span class="text-hide">whatsapp</span> </a> <a href="https://api.whatsapp.com/send?phone=31638351565" target="_blank" class="btn--icon i-whatsapp show-for-xxlarge" rel="noreferrer"> <span class="text-hide">whatsapp</span> </a> </li> </ul> </div> </li></ul> <div class='language-switch'><a href="/citg/over-faculteit/feiten-en-cijfers" title="Nederlands" lang="nl">Nederlands</a></div> <ul class="list-inline"> <li> <a href="/en/cookie-policy" title="Cookie settings" class="cookieButton btn--icon"> <svg viewBox="14 13 36 44" class="cookieButton-icon"> <circle cx="35.709" cy="22.973" fill="currentColor" r="2"/> <circle cx="41.875" cy="29.417" fill="currentColor" r="2"/> <circle cx="31.709" cy="31.417" fill="currentColor" r="2"/> <circle cx="24.001" cy="37.25" fill="currentColor" r="2"/> <circle cx="32" cy="42.292" fill="currentColor" r="2"/> <circle cx="38.875" cy="37.25" fill="currentColor" r="2"/> <path d="M32 50c-9.925 0-18-8.075-18-18 0-.505.034-1.001.074-1.494a1 1 0 0 1 1.269-.882c3.594 1.016 7.107-1.47 7.578-4.963a1 1 0 0 1 .858-.857 5.948 5.948 0 0 0 3.438-1.705 5.958 5.958 0 0 0 1.756-4.241c0-.78-.15-1.542-.447-2.266a1.002 1.002 0 0 1 .776-1.369A17.78 17.78 0 0 1 32 14c9.925 0 18 8.075 18 18s-8.075 18-18 18zM16.002 31.795A14.01 14.01 0 0 0 16 32c0 8.822 7.178 16 16 16s16-7.178 16-16-7.178-16-16-16c-.396 0-.801.019-1.233.058a7.91 7.91 0 0 1 .206 1.799 7.941 7.941 0 0 1-2.342 5.656 7.914 7.914 0 0 1-3.86 2.143c-.899 3.891-4.672 6.653-8.769 6.139z" fill="currentColor"/> </svg> </a> </li> <li> <button class="button-reset btn--icon btn-contrast js-contrastChanger" title="Contrast settings"> <span class="js-contrastChanger-label text-hide" data-highcontrasttext="Activate high contrast" data-normalcontrasttext="Activate normal contrast"> Activate high contrast </span> <svg role="presentation" class="icon-contrast"> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/contrast-icon.svg#contrast-icon"></use> </svg> </button> </li> </ul> <button class='menu menu--close button-reset js-toggle' data-target='.nav-overlay'> <span class='i-close'> <span class='text-hide'> Close menu </span> </span> </button> </div> </nav> <div class="modal"> <div class="modal__content"> <form action="/en/search" method="get" class="nav-search"> <input type="search" name="q" id="headerSearchForm-input" value="" class="autocomplete-inputField" autocomplete="off" aria-label="Search"> <button class="button-reset i-search"> <span class="text-hide">Search</span> </button> </form> </div> <button data-target="this.parent" class="menu menu--close button-reset js-modal-close"> <span class="i-close"> <span class="text-hide">Close search</span> </span> </button> </div> <main id="main" class="content__full-width"> <div class="container"> <div class="breadcrumb-bar"> <nav class="breadcrumb"> <ul class="list-inline"> <li> <a href="/en/ceg" title="Civil Engineering and Geosciences">Civil Engineering and Geosciences</a> </li> <li> <a href="/en/ceg/about-faculty" title="About the faculty">About the faculty</a> </li> <li> <a href="/en/ceg/about-faculty/facts-and-figures" title="Facts and Figures">Facts and Figures</a> </li> </ul> </nav> </div> <!--TYPO3SEARCH_begin--> <div id=c758508 class="t3ce frame-type-html "> <script type='text/javascript' src='https://tableau.tudelft.nl/javascripts/api/viz_v1.js'></script><div class='tableauPlaceholder' style='width: 1200px; height: 1027px;'><object class='tableauViz' width='1200' height='1027' style='display:none;'><param name='host_url' value='https%3A%2F%2Ftableau.tudelft.nl%2F' /> <param name='embed_code_version' value='3' /> <param name='site_root' value='' /><param name='name' value='FactsandFiguresTUDelft/Index' /><param name='tabs' value='no' /><param name='toolbar' value='yes' /><param name='showAppBanner' value='false' /><param name='display_count' value='n' /><param name='origin' value='viz_share_link' /><param name='isGuestRedirectFromVizportal' value='y' /></object></div> </div> <!--TYPO3SEARCH_end--> </div> </main> <footer class="pageFooter"> <a class="js-back_to_top" href="#" title="back_to_top"> <div class="btn--icon i-arrow_down"></div> </a> <div class='container'> <div class='row'> <div class="md-6 lg-6 space"> <div id=c37509 class="t3ce frame-type-header "> <h2 class=" h1"> Delft University of Technology </h2> </div> <div class="t3ce frame-type-sitetud_socialmedialinks "> <h3 class="text-hide">socmed</h3> <ul class="list-inline"> <li> <a href="https://www.facebook.com/tudelft" target="_blank" class="btn--icon i-facebook" rel="noreferrer"> <span class="text-hide"> facebook </span> </a> </li> <li> <a href="https://twitter.com/tudelft" target="_blank" class="btn--icon i-twitter" rel="noreferrer"> <span class="text-hide"> twitter </span> </a> </li> <li> <a href="https://www.instagram.com/tudelft/?hl=en" target="_blank" class="btn--icon i-instagram" rel="noreferrer"> <span class="text-hide"> instagram </span> </a> </li> <li> <a href="https://www.youtube.com/user/tudelft" target="_blank" class="btn--icon i-youtube" rel="noreferrer"> <span class="text-hide"> youtube </span> </a> </li> <li> <a href="https://www.linkedin.com/edu/delft-university-of-technology-15445" target="_blank" class="btn--icon i-linkedin" rel="noreferrer"> <span class="text-hide"> linkedin </span> </a> </li> <li> <a href="https://api.whatsapp.com/send?phone=3197010256278" target="_blank" class="btn--icon i-whatsapp hide-for-xxlarge" rel="noreferrer"> <span class="text-hide">whatsapp</span> </a> <a href="https://wa.me/+3197010256278" title="Start Whatsapp Conversation" target="_blank" class="btn--icon i-whatsapp show-for-xxlarge" rel="noreferrer"> <span class="text-hide">whatsapp</span> </a> </li> </ul> </div> </div> <div class="md-6 lg-6"> <div class="row"> <div class="sm-6"> <div id=c46 class="t3ce frame-type-text "> <p>Postbus 5<br> 2600 AA Delft<br> The Netherlands<br> <a href="/en/about-tu-delft/contact" title="Opens internal link in current window">Contact and accessibility</a></p> </div> </div> <div class="sm-6 right"> <div id=c45 class="t3ce frame-type-text "> <p><a href="/en/about-tu-delft/working-at-tu-delft">Vacancies</a><br> <a href="/en/about-tu-delft/browsealoud">Reading assistant BrowseAloud</a><br> <a href="http://intranet.tudelft.nl/" target="_blank" rel="noreferrer">Intranet </a><br> <a href="/en/student" target="_blank">Student portal</a><br> <a href="/en/delft-university-fund/support-us">Donate</a><br> <a href="/en/disclaimer">Disclaimer</a><br> <a href="/en/privacy-and-security">Privacy & Security</a></p> </div> </div> </div> </div> </div> </div> </footer> <nav class="nav-bottom"> <div class="container no-spacing"> <a class="logo left" href="/en/"> <svg focusable="false" class="logo logo-tudelft--bottom" role="img"> <use xlink:href="#logo"></use> </svg> <span class="text-hide">Home of TU Delft</span> </a> <div class="nav-main left"> <a href="/en/cookie-policy" title="Cookie settings" class="cookieButton btn--icon"> <svg viewBox="14 13 36 44" class="cookieButton-icon"> <circle cx="35.709" cy="22.973" fill="currentColor" r="2"/> <circle cx="41.875" cy="29.417" fill="currentColor" r="2"/> <circle cx="31.709" cy="31.417" fill="currentColor" r="2"/> <circle cx="24.001" cy="37.25" fill="currentColor" r="2"/> <circle cx="32" cy="42.292" fill="currentColor" r="2"/> <circle cx="38.875" cy="37.25" fill="currentColor" r="2"/> <path d="M32 50c-9.925 0-18-8.075-18-18 0-.505.034-1.001.074-1.494a1 1 0 0 1 1.269-.882c3.594 1.016 7.107-1.47 7.578-4.963a1 1 0 0 1 .858-.857 5.948 5.948 0 0 0 3.438-1.705 5.958 5.958 0 0 0 1.756-4.241c0-.78-.15-1.542-.447-2.266a1.002 1.002 0 0 1 .776-1.369A17.78 17.78 0 0 1 32 14c9.925 0 18 8.075 18 18s-8.075 18-18 18zM16.002 31.795A14.01 14.01 0 0 0 16 32c0 8.822 7.178 16 16 16s16-7.178 16-16-7.178-16-16-16c-.396 0-.801.019-1.233.058a7.91 7.91 0 0 1 .206 1.799 7.941 7.941 0 0 1-2.342 5.656 7.914 7.914 0 0 1-3.86 2.143c-.899 3.891-4.672 6.653-8.769 6.139z" fill="currentColor"/> </svg> </a> <button class="button-reset btn--icon btn-contrast js-contrastChanger" title="Contrast settings"> <span class="js-contrastChanger-label text-hide" data-highcontrasttext="Activate high contrast" data-normalcontrasttext="Activate normal contrast"> Activate high contrast </span> <svg role="presentation" class="icon-contrast"> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/contrast-icon.svg#contrast-icon"></use> </svg> </button> <div id="__ba_panel" class="js-browse-aloud"> </div> </div> <div class="right"> <div class="nav-main"> <ul><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg">Home</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/research/stories-of-science">Stories of Science</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/education">Education</a><ul class="nav-main__submenu"><li><a href="/en/ceg/education/bachelor-programmes">Bachelor programmes</a></li><li><a href="/en/ceg/education/master-programmes">Master programmes</a></li><li><a href="/en/ceg/education/online-education">Online education</a></li><li><a href="/en/ceg/education/minors">Minors</a></li><li><a href="/en/ceg/education/student-stories">Student Stories</a></li><li><a href="/en/ceg/education/postgraduates">Postgraduates</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/research">Research</a><ul class="nav-main__submenu"><li><a href="/en/ceg/research/stories-of-science">Stories of Science</a></li><li><a href="/en/ceg/research/professors">Professors</a></li><li><a href="/en/ceg/research/delft-research-initiatives">Delft Research Initiatives</a></li><li><a href="/en/ceg/research/research-institutes">Research institutes</a></li><li><a href="/en/ceg/research/sector-plan">Sector plan</a></li><li><a href="/en/ceg/research/graduate-school">Graduate School</a></li><li><a href="/en/ceg/research/publications">Publications</a></li><li><a href="/en/ceg/research/research-assessments">Research Assessments</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/cooperation">Cooperation</a><ul class="nav-main__submenu"><li><a href="/en/ceg/cooperation/strategic-partnership">Strategic partnership</a></li><li><a href="/en/ceg/cooperation/internship-or-graduation">Internship or graduation</a></li><li><a href="/en/ceg/cooperation/contribution-to-education">Contribution to education</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/current">Current</a><ul class="nav-main__submenu"><li><a href="/en/ceg/current/latest-news">Latest news</a></li><li><a href="/en/ceg/current/awards-and-publications">Awards and publications</a></li><li><a href="/en/ceg/current/agenda">Agenda</a></li><li><a href="/en/ceg/current/in-the-media">In the media</a></li><li><a href="/en/ceg/current/ceg-on-social-media">CEG on Social Media</a></li><li><a href="/en/ceg/current/press-information">Press information</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty">About the faculty</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/dean">Dean</a></li><li><a href="/en/ceg/about-faculty/departments">Departments</a></li><li><a href="/en/ceg/about-faculty/laboratories">Laboratories</a></li><li><a href="/en/community/alumni">Alumni</a></li><li><a href="/en/ceg/about-faculty/associations-and-societies">Associations and societies</a></li><li><a href="/en/ceg/about-faculty/working-at-our-faculty">Working at our faculty</a></li><li><a href="/en/ceg/about-faculty/diversity-inclusion-team">Diversity & Inclusion Team</a></li><li><a href="/en/ceg/about-faculty/facts-and-figures">Facts and Figures</a></li><li><a href="/en/ceg/about-faculty/contact-and-map">Contact and map</a></li></ul></li></ul> <a href="/citg/over-faculteit/feiten-en-cijfers" title="Schakel over naar de Nederlandse taal" class="btn--icon btn--languageSwitch" lang="nl"> <div class="icon-languageSwitch icon-languageSwitch--en"></div> </a> <button data-target=".nav-search" class="button-reset btn--icon i-search js-modal"> <span class="text-hide">Search</span> </button> </div> </div> </div> </nav> <script> document.addEventListener('DOMContentLoaded', function() { function waitForElementToExist(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(() => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { subtree: true, childList: true, }); }); } // Wacht tot het element bestaat en voer daarna de SVG-injectie uit waitForElementToExist('#__ba_panel > .textDiv > .customText').then(element => { var baPanelIconWrapper = element; baPanelIconWrapper.innerHTML = ` <svg role="img" aria-labelledby="reachdecktitle" style="width: 100%; height: 100%;"> <title id="reachdecktitle">Spreken - Luisteren met de ReachDeck-werkbalk</title> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/browse-aloud.svg#browseAloud"></use> </svg> `; }); }); </script> <!-- fix for TUD-1019 not showing icon correctly --> <script type="text/javascript" src="https://www.browsealoud.com/plus/scripts/3.1.0/ba.js" crossorigin="anonymous" integrity="sha256-VCrJcQdV3IbbIVjmUyF7DnCqBbWD1BcZ/1sda2KWeFc= sha384-k2OQFn+wNFrKjU9HiaHAcHlEvLbfsVfvOnpmKBGWVBrpmGaIleDNHnnCJO4z2Y2H sha512-gxDfysgvGhVPSHDTieJ/8AlcIEjFbF3MdUgZZL2M5GXXDdIXCcX0CpH7Dh6jsHLOLOjRzTFdXASWZtxO+eMgyQ=="></script> <script> // Dit zorgt ervoor dat de ba-panel wordt toegevoegd aan de juiste locatie window.addEventListener('DOMContentLoaded', function () { $(".nav-main.left").append($("#__ba_panel")); }); </script> <script src="/typo3conf/ext/site_tud/Resources/Public/JavaScript/dist.javascripts.c841a1eb1d.min.js" type="text/javascript"></script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--15995'), navSubItem = document.getElementById('nav-overlay__subitem--15995');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--82140'), navSubItem = document.getElementById('nav-overlay__subitem--82140');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--16000'), navSubItem = document.getElementById('nav-overlay__subitem--16000');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--82849'), navSubItem = document.getElementById('nav-overlay__subitem--82849');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--5338'), navSubItem = document.getElementById('nav-overlay__subitem--5338');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--76843'), navSubItem = document.getElementById('nav-overlay__subitem--76843');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <style> .pageFooter { background-image: url(https://www.tudelft.nl/typo3conf/ext/tud_styling/Resources/Public/img/torch.svg); background-repeat:no-repeat; background-position: 15% 75%; background-size: 250%; background-blend-mode: overlay; } .card--no_image {background-blend-mode: overlay;} .flameStyle1 {background-position: 80% 40% !important; background-size: 370% !important;} .flameStyle2 {background-position: 30% 35% !important; background-size: 450% !important;} .flameStyle3 {background-position: 50% 50% !important; background-size: 400% !important;} .flameStyle4 {background-position: 60% 70% !important; background-size: 500% !important;} .flameStyle5 {background-position: 30% 80% !important; background-size: 330% !important;} </style> <script> var cards = document.querySelectorAll('.card--no_image'); var i; for(var i = 0; i<cards.length; i++) { switch (i % 5) { case 0: cards[i].className += " flameStyle1"; break; case 1: cards[i].className += " flameStyle2"; break; case 2: cards[i].className += " flameStyle3"; break; case 3: cards[i].className += " flameStyle4"; break; case 4: cards[i].className += " flameStyle5"; break; } } </script> <script> window.addEventListener('DOMContentLoaded', function () { document.querySelectorAll(".logo-tudelft--top")?.forEach (x=> x.setAttribute("aria-label", "TU Delft homepage")); // add aria-label to top logo document.querySelectorAll(".logo-tudelft--bottom")?.forEach (x=> x.setAttribute("aria-label", "TU Delft homepage")); //add aria-label to bottom logo // document.getElementsByClassName("button-reset btn--icon i-search js-modal")[0].setAttribute("aria-label", "Search, Zoeken"); // add aria-label to search icon // document.getElementsByClassName("button-reset btn--icon i-search js-modal")[1].setAttribute("aria-label", "Search, Zoeken"); // add aria-label to search icon document.querySelectorAll('[class*=video--popup]')?.forEach( x=> x.setAttribute("aria-label","Play video" + ", " + x.innerText)); // add 'play video' to every videoelement with additional video-title document.querySelector(".cookieNotice")?.setAttribute("role", "dialog"); // add region to cookiestatement document.querySelector(".cookieNotice")?.setAttribute("aria-label", "Cookie statement"); // add aria-label to cookiestatement document.querySelector(".pageFooter")?.setAttribute("role", "region"); // add region to footer document.querySelector(".pageFooter")?.setAttribute("aria-label", "Footer"); // add aria-label to footer // add tabindex=-1 to pagination (...) const dots = document.querySelectorAll('ul li a'); for (let i = 0; i < dots.length; i++) { if (dots[i].textContent === '...') { dots[i].setAttribute("tabindex", "-1"); } } // add buttontitle to carousel aria-label document.querySelectorAll('.slick-dots button')?.forEach(button => { button.setAttribute('aria-label', button.innerText + ', ' + button.getAttribute('aria-label')); }); // set photogallery ARIA to hidden // document.querySelectorAll('.photoGallerySlider .slick-dots')?.forEach(ul => { // ul.setAttribute("aria-hidden","true");}) // set ARIA label for next & previous buttons document.querySelectorAll(".slick-prev")?.forEach (x=> x.setAttribute("aria-label", "Vorige / Previous")); // add aria-label to top logo document.querySelectorAll(".slick-next")?.forEach (x=> x.setAttribute("aria-label", "Volgende / Next")); // add aria-label to top logo // add 'reference' to element id //document.querySelectorAll(".frame-type-shortcut [id]").forEach((element, index) => element.id += '-reference' + index); // header sliders WCAG document.querySelectorAll('.carousel')?.forEach( x=> x.setAttribute("role","region")); document.querySelectorAll('.carousel')?.forEach( x=> x.setAttribute("aria-label","Header carousel")); document.querySelectorAll(".menu.js-toggle")?.forEach ( x=> x.setAttribute("aria-label", "Menu")); // Set ARIA label of patty menu // wis alle filters aria labels/role var list = document.querySelector(".lookup-usedFilters"); if (list && list.childElementCount !== 0) { // It has at least one element as a child list.setAttribute("role", "list"); } else if (list && list.childElementCount === 0) { list.setAttribute("role", "none"); } // fix profilecard UL var profilecard = document.querySelectorAll(".profile__contactdata"); for (i = 0; i < profilecard.length; i++) { if (profilecard[i] && profilecard[i].childElementCount !== 0) { // It has at least one element as a child profilecard[i].setAttribute("role", "list"); } else if (profilecard[i] && profilecard[i].childElementCount === 0) { profilecard[i].setAttribute("role", "none"); }} // fix aside UL var navaside = document.querySelectorAll(".nav-aside ul"); for (i = 0; i < navaside.length; i++) { if (navaside[i] && navaside[i].childElementCount !== 0) { // It has at least one element as a child navaside[i].setAttribute("role", "list"); } else if (navaside[i] && navaside[i].childElementCount === 0) { navaside[i].setAttribute("role", "none"); }} // Set aria label for to top links // Todo: remove childnode <span class="hide">To top</span> document.querySelectorAll(".csc-linkToTop .uparrow").forEach(x => x.setAttribute("aria-label", "To top")); // Set tabindex of photo gallery slider to -1 document.querySelectorAll(".photoGalleryNavSlider-item").forEach(x => x.setAttribute("tabindex", -1)) document.querySelectorAll(".slick-slide").forEach(x => x.setAttribute("tabindex", -1)) // Remove empty header in carousel document.querySelectorAll(".frame-type-sitetud_carousel h3:empty").forEach(x => x.remove()) document.querySelectorAll(".frame-type-sitetud_carousel .slick-dots").forEach(x => x.style.marginTop = "3rem") // Empty H2 in Lookup results if screen reader header is not entered document.querySelectorAll("h2.show-for-sr:empty").forEach(x => x.remove()) // Empty H2 in Lookup results if agenda__month header is not entered document.querySelectorAll(".agenda .agenda__month:empty").forEach(x => x.remove()) document.querySelectorAll(".filters-column").forEach((el, index) => { let id = `formFieldId${index}` el.querySelector("select")?.setAttribute("aria-labelledby",id) el.querySelector("span")?.setAttribute("id",id) }) }, false); const navList = document.querySelector(".nav-main ul"); if (navList && navList.children.length === 0) { navList.setAttribute("aria-hidden", "true"); } // Adding .navigation class to .nav-top and .nav-bottom to fix ARIA conformance Do page sections with the same name serve the same purpose? document.querySelectorAll('nav.nav-top, nav.nav-bottom').forEach(nav => { nav.classList.add('navigation'); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { // Zoek alle .video elementen const videoDivs = document.querySelectorAll('.video'); videoDivs.forEach(videoDiv => { // Voeg role="region" toe als het nog niet aanwezig is if (!videoDiv.hasAttribute('role')) { videoDiv.setAttribute('role', 'region'); } // Zoek de iframe binnen elke .video div const iframe = videoDiv.querySelector('iframe'); // Controleer of de src van de iframe verwijst naar youtube-nocookie if (iframe && iframe.src.includes('youtube-nocookie.com')) { // Kopieer de aria-label van de div naar de title van het iframe let ariaLabel = videoDiv.getAttribute('aria-label'); // Scrub de ongewenste delen uit de aria-label string ariaLabel = ariaLabel.replace(/Tab om naar de videospeler te gaan van /, '') .replace(/Tab to enter video player of /, ''); // Stel de scrubbed aria-label in als de title van het iframe iframe.setAttribute('title', ariaLabel); } }); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { setTimeout(function () { const galleries = document.querySelectorAll('.photoGallerySlider ul'); galleries.forEach(gallery => { // Verwijder role="tablist" van de <ul> (slick voegt dit mogelijk toe) gallery.removeAttribute('role'); gallery.setAttribute('aria-live', 'polite'); const updateAriaAttributes = () => { setTimeout(() => { const listItems = gallery.querySelectorAll('li'); listItems.forEach(item => { // Controleer of het item actief is if (item.classList.contains('slick-active')) { item.setAttribute('aria-hidden', 'false'); item.setAttribute('aria-current', 'true'); item.setAttribute('role', 'status'); // Actieve krijgt role="status" } else { item.setAttribute('aria-hidden', 'true'); item.removeAttribute('aria-current'); item.setAttribute('role', 'status'); // Inactieve krijgen role="status" } }); }, 10); // Wacht even zodat Slick klaar is met het wijzigen }; // MutationObserver voor het verwijderen van role="tablist" op de UL const observer = new MutationObserver(() => { if (gallery.getAttribute('role') === 'tablist') { gallery.removeAttribute('role'); } }); observer.observe(gallery, { attributes: true }); // Direct uitvoeren bij laden updateAriaAttributes(); // Opnieuw uitvoeren na elke slide-wissel $(gallery).on('afterChange', function() { updateAriaAttributes(); }); }); }, 250); // Eerste vertraging voor DOM-load en initiële Slick-opmaak }); </script> <script> document.addEventListener('DOMContentLoaded', () => { // Verkrijg de taal van de pagina const lang = document.documentElement.lang; // Standaard tekst voor de knoppen let prevLabelText = 'Vorige'; // Voor 'slick-prev' let nextLabelText = 'Volgende'; // Voor 'slick-next' // Als de taal Engels (VS) is, stel dan 'Previous' en 'Next' in if (lang === 'en-US') { prevLabelText = 'Previous'; nextLabelText = 'Next'; } // Functie om aria-label aan te passen const updateAriaLabels = () => { // Pas aria-label voor de 'slick-prev' knoppen document.querySelectorAll('.gallery .slick-prev').forEach(button => { button.setAttribute('aria-label', prevLabelText); }); // Pas aria-label voor de 'slick-next' knoppen document.querySelectorAll('.gallery .slick-next').forEach(button => { button.setAttribute('aria-label', nextLabelText); }); }; // Initialiseer de MutationObserver om te luisteren naar veranderingen in de DOM const observer = new MutationObserver((mutationsList, observer) => { mutationsList.forEach(mutation => { if (mutation.type === 'childList') { updateAriaLabels(); // Controleer en update aria-label wanneer knoppen worden toegevoegd } }); }); // Start de observer op de .gallery container const gallery = document.querySelector('.gallery'); if (gallery) { observer.observe(gallery, { childList: true, subtree: true }); } // Pas aria-label toe voor knoppen die al bestaan bij de eerste laadtijd updateAriaLabels(); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { // Functie om de accessibility van slides te updaten function updateSlideAccessibility() { document.querySelectorAll('.dynamicHeader-slide').forEach(slide => { const links = slide.querySelectorAll('a'); const hasLinks = links.length > 0; const isHidden = slide.getAttribute('aria-hidden') === 'true'; // Als er linkjes zijn, stel de tabindex in op basis van zichtbaarheid if (hasLinks) { links.forEach(link => { link.setAttribute('tabindex', isHidden ? '-1' : '0'); }); } else { // Laat afbeeldingen met alt="" met rust, tenzij ze expliciet verborgen moeten zijn slide.querySelectorAll('img').forEach(img => { if (isHidden) { img.setAttribute('aria-hidden', 'true'); // Alleen verbergen als de slide niet zichtbaar is } else { img.removeAttribute('aria-hidden'); // Laat de standaardgedrag van de afbeelding intact } }); } }); } // Voeg de juiste listeners toe voor Slick.js na de initiële opzet function attachSlickListeners() { document.querySelectorAll('.dynamicHeader.slick-slider').forEach(carousel => { if (!carousel.dataset.slickObserverAttached && $(carousel).hasClass('slick-initialized') && $(carousel).find('.slick-slide').length > 1) { $(carousel).on('afterChange', updateSlideAccessibility); carousel.dataset.slickObserverAttached = "true"; } }); } // Initialiseer accessibility en voeg listeners toe updateSlideAccessibility(); attachSlickListeners(); // MutationObserver om veranderingen in de slider te detecteren const observer = new MutationObserver(updateSlideAccessibility); document.querySelectorAll('.dynamicHeader').forEach(header => { observer.observe(header, { childList: true, subtree: true }); }); // Zoek de carouselcontainer met de class 'dynamicHeader' var dynamicHeader = document.querySelector('.dynamicHeader'); // Voeg role="banner" toe aan de carouselcontainer als het bestaat if (dynamicHeader) { dynamicHeader.setAttribute('role', 'banner'); } // Zoek alle slides met de class 'dynamicHeader-slide' var dynamicSlides = document.querySelectorAll('.dynamicHeader-slide'); // Voeg role="tabpanel" toe aan elke slide dynamicSlides.forEach(function(slide) { slide.setAttribute('role', 'tabpanel'); // Zoek de .dynamicHeader-slideBlocks binnen elke slide var slideBlocks = slide.querySelector('.dynamicHeader-slideBlocks'); // Voeg role="region" en aria-label toe aan de slideBlocks als ze bestaan if (slideBlocks) { slideBlocks.setAttribute('role', 'region'); slideBlocks.setAttribute('aria-label', 'Slide Content'); // Algemeen label } }); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { // Functie om lege headings om te zetten naar <p> met corresponderende class function convertEmptyHeadings(selector) { document.querySelectorAll(selector).forEach(header => { if (!header.textContent.trim()) { const p = document.createElement("p"); p.className = header.tagName.toLowerCase(); p.innerHTML = header.innerHTML; // Behoud eventuele whitespace ( ) header.replaceWith(p); } }); } // Uitvoeren voor de verschillende contexten convertEmptyHeadings(".frame-type-text h1, .frame-type-text h2, .frame-type-text h3, .frame-type-text h4, .frame-type-text h5, .frame-type-text h6"); convertEmptyHeadings(".frame-type-header h1, .frame-type-header h2, .frame-type-header h3, .frame-type-header h4, .frame-type-header h5, .frame-type-header h6"); convertEmptyHeadings(".card__content h3"); convertEmptyHeadings(".notice h1, .notice h2, .notice h3, .notice h4, .notice h5, .notice h6"); convertEmptyHeadings(".box.bg-blue_dark h1, .box.bg-blue_dark h2, .box.bg-blue_dark h3, .box.bg-blue_dark h4, .box.bg-blue_dark h5, .box.bg-blue_dark h6"); convertEmptyHeadings(".frame-type-textpic h1, .frame-type-textpic h2, .frame-type-textpic h3, .frame-type-textpic h4, .frame-type-textpic h5, .frame-type-textpic h6"); convertEmptyHeadings(".image h1, .image h2, .image h3, .image h4, .image h5, .image h6"); convertEmptyHeadings(".peoplepages h3"); convertEmptyHeadings(".profileHeader-inner h2"); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { // Selecteer de skiplinks const skiplinks = document.querySelectorAll(".skiplink"); if (skiplinks.length > 0) { // Maak een <nav> element aan const nav = document.createElement("nav"); nav.setAttribute("aria-label", "Skiplinks"); // Verplaats de skiplinks naar de <nav> skiplinks.forEach(link => { nav.appendChild(link); }); // Voeg de <nav> toe aan de body (op de juiste plek) document.body.insertBefore(nav, document.body.firstChild); } }); </script> <script> document.addEventListener("DOMContentLoaded", function () { const svgElement = document.querySelector(".magazine-navigation-logo"); if (svgElement && !svgElement.hasAttribute("aria-label")) { svgElement.setAttribute("aria-label", "E-magazine homepage"); } }); // Dit moet uiteindelijk de tekst van het magazine bevatten // </script> <script type="text/javascript"> if (window.require && window.$ && window.isLumesseApplyPage) { $.getScript('/typo3conf/ext/site_tud/Resources/Public/JavaScript/TalentLink.js') };</script> <script> document.addEventListener("DOMContentLoaded", () => { // Functie om de tekstinhoud van de knoppen te verwijderen const removeButtonText = (container) => { const buttons = container.querySelectorAll(".slick-dots button"); buttons.forEach((button) => { button.textContent = ""; // Verwijder de tekstinhoud }); }; // Check en observeer alleen binnen .sliderCentered const observeSlickDots = (container) => { const slickDots = container.querySelector(".slick-dots"); if (!slickDots) return; // MutationObserver instellen const observer = new MutationObserver(() => { removeButtonText(container); // Tekst opnieuw verwijderen bij veranderingen }); // Start observer observer.observe(slickDots, { childList: true, // Observeer toegevoegde/verwijderde knopen subtree: true, // Observeer alle child-elementen attributes: true, // Observeer wijzigingen in attributen }); // Initiale verwijderactie removeButtonText(container); }; // Zoek alle .sliderCentered-containers en start de observer per container document.querySelectorAll(".sliderCentered").forEach((slider) => { observeSlickDots(slider); }); // Fallback met vertraging voor late initiatie van Slick setTimeout(() => { document.querySelectorAll(".sliderCentered").forEach((slider) => { observeSlickDots(slider); }); }, 250); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { const waitForLeafletContainer = () => { const leafletContainer = document.querySelector('.leaflet-container'); if (leafletContainer) { const updateMarkers = () => { document.querySelectorAll('.leaflet-pane.leaflet-marker-pane img.leaflet-marker-icon').forEach((markerIcon) => { const popupContent = markerIcon.closest('.leaflet-container').querySelector('.leaflet-popup-content p'); // Alt-tekst instellen op "Location" als basis let altText = "Location"; if (popupContent) { // Zoeken naar het eerste <strong> element in de popup const firstStrong = popupContent.querySelector('strong'); if (firstStrong) { altText += ' ' + firstStrong.textContent; } } // Stel het alt-attribuut altijd in, ook als er geen sterke tekst is markerIcon.setAttribute('alt', altText); // Maak een uniek ID voor de popup-content als het nog niet bestaat if (popupContent && !popupContent.id) { popupContent.id = `popup-${Math.random().toString(36).substr(2, 9)}`; } // Stel aria-labelledby in op de marker if (popupContent) { markerIcon.setAttribute('aria-labelledby', popupContent.id); } }); }; updateMarkers(); const observer = new MutationObserver(() => { updateMarkers(); }); observer.observe(leafletContainer, { childList: true, subtree: true }); } else { setTimeout(waitForLeafletContainer, 100); } }; waitForLeafletContainer(); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { // Functie voor Scenario 1 (persoon met afbeelding, waar de link een foto bevat) function addAriaToProfileLinks() { let profileLinks = document.querySelectorAll('a.hoverableBlock-imageWrap'); profileLinks.forEach((link) => { // Zoek de afbeelding binnen de link let img = link.querySelector('img'); if (img) { // Haal de alt-tekst van de afbeelding op let altText = img.getAttribute('alt'); // Als er geen alt-tekst is, behandel het als een placeholder if (!altText || altText.trim() === "") { let href = link.getAttribute('href'); let labelText = "Profile link to " + href.split('?')[0].split('/').pop(); // Haal het laatste gedeelte van de URL link.setAttribute('aria-label', labelText); } else { // Als er een alt-tekst is, stel aria-labelledby in naar het id van de afbeelding img.setAttribute('id', 'image-' + Date.now()); // Geef een unieke ID link.setAttribute('aria-labelledby', img.id); } } else { // Als er geen afbeelding is, voeg dan aria-label toe gebaseerd op de href let href = link.getAttribute('href'); let labelText = "Profile link to " + href.split('?')[0].split('/').pop(); // Haal het laatste gedeelte van de URL link.setAttribute('aria-label', labelText); } }); } // Voeg aria-label of aria-labelledby toe voor Scenario 1 addAriaToProfileLinks(); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { let imageDivs = document.querySelectorAll('.image'); let pageLanguage = document.documentElement.lang || 'en-US'; // Bepaal de juiste prefix op basis van de taalinstelling let linkPrefix = (pageLanguage === 'nl-NL') ? 'Link naar ' : 'Link to '; let enlargePrefix = (pageLanguage === 'nl-NL') ? 'Klik om afbeelding te vergroten: ' : 'Click to enlarge the image: '; imageDivs.forEach(function (imageDiv, index) { let link = imageDiv.querySelector('a[href]'); let img = link ? link.querySelector('img') : null; let altText = img ? img.getAttribute('alt') : null; // Bepaal het juiste aria-label let ariaText = link.classList.contains('image-enlarge') ? enlargePrefix + altText : linkPrefix + altText; link.setAttribute('aria-label', ariaText); }); }); </script> <style> .frame-type-text ul li a, .frame-type-sitetud_notification ul li a { display: inline-block; min-height: 28px; } .contenttable a {display: inline-block; min-height: 28px;} .nav-inpage {line-height:1.67rem;} </style> <script> document.addEventListener('DOMContentLoaded', function () { // Functie om aria-hidden en tabindex correct in te stellen function updateSliderAccessibility() { const slides = document.querySelectorAll('.photoGalleryNavSlider .photoGalleryNavSlider-item'); slides.forEach(slide => { const isCurrent = slide.classList.contains('slick-current'); const isActive = slide.classList.contains('slick-active'); const isCloned = slide.classList.contains('slick-cloned'); // Correcte tabindex en aria-hidden toepassen if (isCurrent) { slide.setAttribute('tabindex', '0'); slide.setAttribute('aria-hidden', 'false'); } else if (isActive) { slide.setAttribute('tabindex', '-1'); slide.setAttribute('aria-hidden', 'true'); } else if (isCloned) { slide.setAttribute('tabindex', '-1'); slide.setAttribute('aria-hidden', 'true'); } else { slide.setAttribute('tabindex', '-1'); slide.setAttribute('aria-hidden', 'true'); } // Voor picture-elementen, stel ook aria-hidden in const picture = slide.querySelector('picture'); if (picture) { picture.setAttribute('aria-hidden', slide.getAttribute('aria-hidden')); } }); } // MutationObserver om te reageren op veranderingen in de slider const observer = new MutationObserver(() => { updateSliderAccessibility(); }); // Start observeren van veranderingen in de slider const slider = document.querySelector('.photoGalleryNavSlider'); if (slider) { observer.observe(slider, { childList: true, // Observeer toevoegingen/verwijderingen van slides subtree: true, // Observeer ook onderliggende elementen }); } // Initialiseer de toegankelijkheid bij DOM-load updateSliderAccessibility(); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { // Zoek alle tr's in de tabel const rows = document.querySelectorAll('tr'); rows.forEach(function(row, index) { // Controleer of de tr geen kinderen heeft met inhoud const hasContent = Array.from(row.children).some(function(cell) { // Kijk of een cellen tekst of ander inhoud heeft return cell.textContent.trim() !== "" || cell.innerHTML.trim() !== ""; }); // Als de rij geen inhoud heeft, markeer deze dan als aria-hidden if (!hasContent) { row.setAttribute('aria-hidden', 'true'); // Markeer de rij als verborgen } }); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { const labels = { "nav-top": "Top navigation", "nav-bottom": "Bottom navigation", "breadcrumb": "Breadcrumb", "nav-tab": "Tab navigation", "nav-aside": "Side navigation", "nav-carousel": "Quick link navigation" }; Object.entries(labels).forEach(([className, label]) => { document.querySelectorAll(`nav.${className}`).forEach(nav => { nav.setAttribute("aria-label", label); }); }); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { // Zoek naar alle .frame-type-lookup_results elementen document.querySelectorAll('.frame-type-lookup_results').forEach(frame => { // Zoek binnen de frame naar elke .row frame.querySelectorAll('.row').forEach(row => { // Controleer of er een aria-labelledby attribuut aanwezig is op de .row const ariaLabelledBy = row.getAttribute('aria-labelledby'); const srLabel = row.querySelector('.show-for-sr'); // Zoek naar de .show-for-sr binnen de .row const contentSlider = row.querySelector('.content-slider'); // Zoek naar de .content-slider binnen de .row // Controleer of alle condities voldaan zijn: if (ariaLabelledBy && srLabel && contentSlider) { // Verwijder aria-labelledby van de .row row.removeAttribute('aria-labelledby'); } }); }); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.powermail_field label input[aria-required="true"]').forEach(input => { input.removeAttribute('aria-required'); }); }); </script> <script> document.addEventListener('DOMContentLoaded', () => { const observer = new MutationObserver(() => { const carouselFrames = document.querySelectorAll('.frame-type-sitetud_carousel'); carouselFrames.forEach(frame => { // Zoek naar buttons die dieper genest zijn binnen de container const buttons = frame.querySelectorAll('button[data-role="none"]'); buttons.forEach(button => { const span = button.querySelector('span'); if (span) { const text = span.textContent.trim(); button.setAttribute('aria-label', text); // Stel aria-label in button.setAttribute('title', text); // Stel title in } }); }); // Stop de observer als alle relevante buttons zijn verwerkt const totalButtons = document.querySelectorAll('.frame-type-sitetud_carousel button[data-role="none"]').length; if (totalButtons > 0) { observer.disconnect(); } }); // Start observer op de hele body observer.observe(document.body, { childList: true, subtree: true }); }); </script> </body> </html>